纯虚拟析构函数在C ++中是可能的。如果一个类包含纯虚拟析构函数,则必须为纯虚拟析构函数提供一个函数体。
#include <iostream> using namespace std; class B { public: virtual ~B()=0; // Pure virtual destructor }; B::~B() { std::cout << "Pure virtual destructor is called"; } class D : public B { public: ~D() { cout << "~D() is executed"<<endl; } }; int main() { B *bptr=new D(); delete bptr; return 0; }
输出结果
~D() is executed Pure virtual destructor is called