网站建设个人简历的网页,兰州电商平台网站建设,网站建设与规划总结怎么写,免费免费网站模板下载1.特征
析构函数是特殊的成员函数#xff0c;其特征如下#xff1a;
1.析构函数名是在类名前加上字符~。
2.无参数无返回值类型。
3.一个类只能有一个析构函数。若未显式定义#xff0c;系统会自动生成默认的析构函数。注意#xff1a;析构函数不能重载。
4.对象生命周…1.特征
析构函数是特殊的成员函数其特征如下
1.析构函数名是在类名前加上字符~。
2.无参数无返回值类型。
3.一个类只能有一个析构函数。若未显式定义系统会自动生成默认的析构函数。注意析构函数不能重载。
4.对象生命周期结束时c编译系统自动调用析构函数
5.默认生成的析构函数与构造函数类似对于内置类型不做处理自定义类型的成员回去调用它的析构函数。
2.功能
析构函数与构造函数功能相反析构函数不是完成对对象本身的销毁局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数完成对象中资源的清理工作。
3.关于析构函数的自动调用
上文中提到对象生命周期结束时c编译系统自动调用析构函数。那什么时候对象生命周期结束呢
这里总结了两点
对于局部的对象在它所在的函数结束时生命周期结束。
对于全局或静态的对象在main函数结束时生命周期结束。
且满足后定义的先析构
对于局部的对象后定义的先析构。
对于全局或静态的对象后定义的先析构。
此外局部的要优先调用全局或静态的对象比局部晚一点调用。如果在局部定义静态的对象则晚于局部早于全局或静态。
总的来说就是局部局部中的静态全局或静态。 说了这么多大家可能会觉得比较乱下面我们来举个例子就明白啦 大家仔细分析一下析构函数的调用顺序就能看出规律啦我就不过多赘述了。