#include <iostream> using namespace std; class A{ public: A() { cout<<"construct A"<<endl; } virtual void disp() { cout<<"AAAA"<<endl; } virtual ~A()=0; //纯虚函数的析构函数,但是必须要有实现 在下面 A::, 否则析构派生类会报错
//只要含有纯虚函数的基类就是抽象基类,不能生成实例对象,A *pa = new A() 报错。 }; A::~A() { cout<<"destory A"<<endl; } class B:public A { public: B() { cout<<"construct B"<<endl; } void disp() override //override 关键字 强制重写,不是重写就报错 { cout<<"BBBB"<<endl; } ~B() { cout<<"destory B"<<endl; } }; int main() { B *b = new B();
b->A::disp(); //用A:: or X:: 调用指定版本的虚函数 delete b; return 0; }