c++纯虚函数析构
时间: 2023-08-03 21:14:05 浏览: 117
详解C++中虚析构函数的作用及其原理分析
5星 · 资源好评率100%
C++中的纯虚析构函数是一个只有声明而没有实现的虚析构函数。它的定义如下:
```
class A {
public:
virtual ~A() = 0; // 纯虚析构函数
};
A::~A() {}
class B : public A {
public:
~B() {}
};
int main() {
A* a = new B();
delete a;
return 0;
}
```
在使用纯虚析构函数时,需要注意以下几点:
1. 纯虚析构函数必须被定义,否则链接时会出错。
2. 如果派生类没有定义析构函数,编译器会默认生成一个析构函数,而这个默认生成的析构函数会调用基类的析构函数。但是,如果基类的析构函数是纯虚析构函数,则无法调用,编译器会报错。
3. 纯虚析构函数不能实例化,因此不能直接创建一个类的实例,而只能用于作为基类,供派生类继承和重写。
阅读全文