方法不替代父亲的方法

时间:2019-07-05 18:45:33

标签: c++ inheritance

我已经在C++中编写了以下程序:

class A {
public:
    A() {}
    void foo() { cout << "A::foo" << endl; }
};

class B : public A {
public:
    B() {} 
    void foo() override { cout << "B::foo" << endl; } 
};

由于某些原因,B::foo()不会覆盖A::foo()

  

错误:“ void B :: foo()”标记为“覆盖”,但没有覆盖

如果我删除了override关键字并运行:

int main()
{
    A* a = new B();
    a->foo();
    return 0;
}

它打印:A::foo。为什么不覆盖?

0 个答案:

没有答案