No, you cannot specify complex constraints over which many member functions must be redefined. The only restrictions apply to individual functions; pure virtual ( =0 ) to override the mandate and (in C ++ 11) final to prevent overriding.
The best thing you can do is make both functions pure virtual, forcing the derived class to override both. This, at least, makes the author of the derived class think about what needs to be redefined; it is impossible to redefine one and forget the other.
You can still provide a default implementation, so derived classes that do not want to override any function need only very short overrides that invoke the default versions.
source share