可能重複:
How to force child same virtual function call its parent virtual function first運行基類函數,然後繼承類函數
EDIT人們完全缺少點什麼我得到的是,如果很多的類繼承基地,我不想每個人都打電話給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;
}
你的意思是'virtual void myFunction'? – Thomas
見[C++ FAQ(http://www.parashift.com/c++-faq-lite/virtual-functions.html#faq-20.5)來解釋 – EdChum