首页 > 试题广场 >

关于以下代码说法正确的有? #include <io

[单选题]
关于以下代码说法正确的有?
#include <iostream>
using namespace std;
class A {
public:
    virtual void testA() = 0;
    virtual void print() = 0;
};
class B :public A
{
public:
    virtual void testA() = 0;
    virtual void print() override
    {
        std::cout << "B::print" << std::endl;
    }
    virtual void testB()
    {
        std::cout << "testB" << std::endl;
    }
};
class C :public B
{
public:
    virtual void testA(){}
    virtual void print() override
    {
        std::cout << "C::print" << std::endl;
    }
};
int main() {
    C c;
    c.print();
    c.testB();
    return 0;
}

  • 会出现编译出错
  • 会成功输出C::print 以及 testB
  • main函数里可以生成B的对象,代码不会报错
  • main函数里可以生成A的对象,代码不会报错
子类会继承父类的虚函数表
发表于 2022-08-25 19:11:45 回复(0)
DC不能实例化抽象类
发表于 2022-09-13 17:50:03 回复(0)
在派生类重定义虚函数不需要关键字virtual
为什么上述程序不报错
发表于 2021-07-26 17:10:55 回复(3)