首页 > 编程 > C++ > 正文

简单介绍C++编程中派生类的析构函数

2020-05-23 14:14:10
字体:
来源:转载
供稿:网友

这篇文章主要介绍了C++编程中派生类的析构函数,析构函数平时一般使用较少,需要的朋友可以参考下

和构造函数类似,析构函数也是不能被继承的。

创建派生类对象时,构造函数的调用顺序和继承顺序相同,先执行基类构造函数,然后再执行派生类的构造函数。但是对于析构函数,调用顺序恰好相反,即先执行派生类的析构函数,然后再执行基类的析构函数。

请看下面的例子:

 

 
  1. #include <iostream> 
  2. using namespace std; 
  3. class A{ 
  4. public
  5. A(){cout<<"A constructor"<<endl;} 
  6. ~A(){cout<<"A destructor"<<endl;} 
  7. }; 
  8. class B: public A{ 
  9. public
  10. B(){cout<<"B constructor"<<endl;} 
  11. ~B(){cout<<"B destructor"<<endl;} 
  12. }; 
  13. class C: public B{ 
  14. public
  15. C(){cout<<"C constructor"<<endl;} 
  16. ~C(){cout<<"C destructor"<<endl;} 
  17. }; 
  18. int main(){ 
  19. C test; 
  20. return 0; 

运行结果:

 

 
  1. A constructor 
  2. B constructor 
  3. C constructor 
  4. C destructor 
  5. B destructor 
  6. A destructor 

从运行结果可以很明显地看出来,构造函数和析构函数的执行顺序是相反的。

需要注意的是,一个类只能有一个析构函数,调用时不会出现二义性,所以析构函数不需要显式地调用。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表