如何更正下面的c ++代码?

yoy*_*oyo 0 c++ syntax

class A1{
    public void op(){cout << "A1";}
};

class B1 : public A1{
    public void op(){cout << "B1";}
};
Run Code Online (Sandbox Code Playgroud)

似乎对我有用,但编译器报告:

错误,预计':'at void

Ste*_*and 5

class A1
{
    public:
       virtual void op(){cout << "A1";}
};

class B1 : public A1
{
    public:
       void op(){cout << "B1";}
};
Run Code Online (Sandbox Code Playgroud)

请注意添加关键字virtual,否则,您不会覆盖void op();B

  • "A1"也需要虚拟析构函数 (3认同)