重複の可能性:
子の同じ仮想関数を強制的にその親仮想関数を最初に呼び出す方法
編集人々は完全にポイントを逃しています:私が得ていたのは、多くのクラスがBaseを継承している場合Base::myFunction()
、すべてのクラスを呼び出す必要はありません!
この質問の言い方はよくわかりませんが、コードから明らかであることを願っています (これは実際にはコンパイルされない可能性があります。すぐに書きました)。
class Base
{
bool flag = false;
void myFunction ()
{
flag = true;
// here run the inherited class's myFunction()
}
};
class A : public Base
{
void myFunction ()
{
// do some clever stuff without having to set the flags here.
}
};
int main ()
{
A myClass;
myClass.myFunction(); // set the flags and then run the clever stuff
std::cout << myClass.flag << endl; // should print true
return 0;
}