我有一个类,像这样: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