// 纯虚函数的声明和定义
#include <iostream>
using namespace std;
class A
{
public:
virtual void disp() = 0;
};
class B : public A
{
public:
virtual void disp() {
cout << "this is form B" << endl;
}
};
class C :public B {
virtual void disp() {
cout << "this is form C" << endl;
}
};
void display(A *a) {
a->disp();
}
int main() {
B *pB = new B; // 如果注释B中纯虚函数,则编译错误,因为未overiding A 中的纯虚函数
C *pC = new C; // 注释C中,保留B则可以编译,如果都注释,则编译错误
display(pB); // 取决于为B 赋值的指针类型
display(pC);
system("pause");
return 0;
}
错误会提示 未提供抽象类的实例
网友评论