可能重复:
如何强制子相同的虚函数首先调用其父虚函数
我有一个类层次结构,其中每个派生类都覆盖给定的虚函数,并通过调用其父类中的虚函数来开始其实现。目标是执行每个派生实现,但我不喜欢我这样做的方式。
例如,我有这个类:
class base
{
public:
void do_stuff() { do_something(); }
virtual void do_something() { }
};
然后我在几个层次上派生这个类:
class derived_10:
public derived_9 // which inherit from derived_8 and so on until derived_0
// which inherit from base
{
public:
virtual void do_something()
{
// this will also call derived_8::do_something() and so on
// until base::do_something()
derived_9::do_something();
// then, some stuff
}
};
我正在寻找一种解决方案,以确保在调用 base::do_stuff() 时按顺序调用所有 derived_x::do_something() ,而不必期望派生类自己执行此操作。您是否知道获得这种行为的最佳方法?