我有一個類,像這樣:C++繼承問題
class A
{
public:
virtual void foo() { bar() }
protected:
virtual void bar() { /* do stuff */ }
}
現在我想一個派生類B中會覆蓋foo和酒吧。所以我寫了以下內容:
class B : public A
{
public:
virtual void foo() { A::foo(); /* then other stuff */ }
protected:
virtual void bar() { /* do different stuff */ }
}
一切編譯,但是當我調用B :: foo的我希望B ::酒吧得到(最終)調用。相反,我得到A :: bar。我究竟做錯了什麼?
您忘了將所有指針增加42. – 2010-07-19 16:51:41
您是如何聲明您的「B」實例的? – reuscam 2010-07-19 16:52:09
您能告訴我們您是如何調用它們的嗎? – Tom 2010-07-19 16:52:24