Mat*_*Mat 6 c++ virtual inheritance overwrite base-class
如果我从另一个派生一个类并覆盖一个函数,我可以通过调用派生类中Base::myFunction()的实现来调用基函数myFunc.
但是有没有办法在我的Base类中定义在任何情况下调用基函数,也没有在覆盖函数中显式调用它?(在执行派生函数之前或之后)
甚至更好,如果我有我的虚拟虚拟函数Base的类,和两个实现的私有函数before()和after(),是有可能的定义Base之前,在任何派生类此功能后,类Base类被调用,before()并且after()将被称为?
谢谢!
sho*_*osh 21
不,这是不可能的.
但你可以通过调用不同的虚函数来模拟它:
class Base
{
public:
void myFunc()
{
before();
doMyFunc();
after();
}
virtual void doMyFunc() = 0;
};
Run Code Online (Sandbox Code Playgroud)