小编Dan*_*iel的帖子

C++继承问题

我有一个这样的课:

class A
{
   public:
      virtual void foo() { bar() }

   protected:  
      virtual void bar() { /* do stuff */ }
}
Run Code Online (Sandbox Code Playgroud)

现在我想要一个覆盖foo和bar的派生类B. 所以我写了以下内容:

class B : public A 
{
    public: 
        virtual void foo() { A::foo(); /* then other stuff */ }

    protected:
       virtual void bar() { /* do different stuff */ }
}
Run Code Online (Sandbox Code Playgroud)

一切都编译但是当我调用B :: foo时,我希望B :: bar得到(最终)调用.相反,我得到A :: bar.我究竟做错了什么?

c++ polymorphism

1
推荐指数
1
解决办法
205
查看次数

标签 统计

c++ ×1

polymorphism ×1