#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的对象,代码不会报错