
展开全部
C++程序子类析构时会调用父类的析构函数。
析构函数调用的次序是先派生类的析构后基类的析构,也就是说在基类的的析构调用的时候,派生类的信息已经全部销毁了定义一个对象时先调用基类的构造函数、然后调用派生类的构造 函数;析构的时候恰好相反:先调用派生类的析构函数、然后调用基类的析构函数。
析构函数:
析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
析构函数调用的次序是先派生类的析构后基类的析构,也就是说在基类的的析构调用的时候,派生类的信息已经全部销毁了定义一个对象时先调用基类的构造函数、然后调用派生类的构造 函数;析构的时候恰好相反:先调用派生类的析构函数、然后调用基类的析构函数。
析构函数:
析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
展开全部
呵呵,实践出真知。以后再遇到这种问题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
======================================================
结果分析:
构造时,先构造基类再构造派生类
析构时,先析构派生类,再析造基类。
=============================================
#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
======================================================
结果分析:
构造时,先构造基类再构造派生类
析构时,先析构派生类,再析造基类。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
构造的时候要构造父类,那么析构的时候也要析构父类了……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先调用自身再调用父类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询