C++程序子类析构时会调用父类的析构函数么?

子类析构时会调用父类的析构函数么?... 子类析构时会调用父类的析构函数么? 展开
 我来答
东哥zld
推荐于2017-10-13 · 机械自动化爱好者
东哥zld
机械自动化爱好者
采纳数:204 获赞数:17734
毕业不久,正在努力创造自己的骄傲

向TA提问 私信TA
展开全部
  C++程序子类析构时会调用父类的析构函数。
  析构函数调用的次序是先派生类的析构后基类的析构,也就是说在基类的的析构调用的时候,派生类的信息已经全部销毁了定义一个对象时先调用基类的构造函数、然后调用派生类的构造 函数;析构的时候恰好相反:先调用派生类的析构函数、然后调用基类的析构函数。

析构函数:
  析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
fantacy129
2010-06-10 · TA获得超过355个赞
知道答主
回答量:166
采纳率:0%
帮助的人:117万
展开全部
呵呵,实践出真知。以后再遇到这种问题LZ自己动动手写几行代码,印象就会非常深刻。既然在这里问了,我就顺手帮写了。。
=============================================
#include <stdio.h>
class base
{
public:
base(){printf("this is the base conntructor\n");}
~base(){printf("this is the base destructor\n");}
};

class derivative :public base
{
public:
derivative(){printf("this is the derivative conntructor\n");}
~derivative(){printf("this is the derivative destructor\n");}
};

int main(int argc, char* argv[])
{
derivative a;
return 0;
}
=============================================================
运行结果:
this is the base conntructor
this is the derivative conntructor
this is the derivative destructor
this is the base destructor
======================================================
结果分析:
构造时,先构造基类再构造派生类
析构时,先析构派生类,再析造基类。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
li_wei_hi
2010-06-10 · TA获得超过250个赞
知道答主
回答量:148
采纳率:0%
帮助的人:0
展开全部
构造的时候要构造父类,那么析构的时候也要析构父类了……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luzhiwei512
2010-06-10 · TA获得超过386个赞
知道小有建树答主
回答量:407
采纳率:0%
帮助的人:352万
展开全部
先调用自身再调用父类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式