C++中的析构函数

Posted hu983

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中的析构函数相关的知识,希望对你有一定的参考价值。

代码:

 1 #include <cstdio>
 2 #include <iostream>
 3 
 4 using namespace std;
 5 
 6 class A{
 7     public:
 8         ~A(){
 9             cout<<"~A()"<<endl;
10         }
11 };
12 
13 class B:public A{
14     public:
15         ~B(){
16             cout<<"~B()"<<endl;
17         }
18 };
19 
20 int main(){
21 
22     A* pA = new B();
23     delete pA;
24     cout<<"final"<<endl;
25     
26     return 0;
27 }

输出:

~A()
final

 分析:

若将A的析构函数设置为虚函数,则输出

~B()
~A()
final

 所以最好将类的析构函数设为虚函数

以上是关于C++中的析构函数的主要内容,如果未能解决你的问题,请参考以下文章

C ++中的析构函数调用顺序[重复]

C++ 中的析构函数(与 java 相比)

c++与java 的析构函数

gcov 报告的析构函数中的分支是啥?

C++中基类的析构函数为什么要用virtual虚析构函数

C++ 设置基类的析构函数为虚函数