为什么我们会在 C++ 中需要一个纯虚析构函数?
在 C++ 中允许纯虚析构函数不存在任何不良影响。必须为纯虚析构函数提供一个函数体,因为派生类析构函数将在基类析构函数之前调用,所以如果我们不提供函数体,它将在对象析构期间找不到需要调用的任何内容,并且会发生错误。我们可以通过使用带有定义的纯虚析构函数轻松创建一个抽象类。
示例代码
#include <iostream>
using namespace std;
class B {
public: virtual ~B()=0; // Pure virtual destructor
};
B::~B() {
cout << "Pure virtual destructor is called";
}
class D : public B {
public: ~D() {
cout << "~Derived\n";
}
};
int main() {
B *b = new D();
delete b;
return 0;
}输出
~Derived Pure virtual destructor is called
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP