栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

从汇编看c++的默认析构函数的使用详解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从汇编看c++的默认析构函数的使用详解

c++中,如果没有为一个类提供析构函数,那么编译器会为这个类提供默认的析构的函数。由于析构函数的功能和构造函数相反,因此和默认的构造函数类似,编译器也会提供无用的默认的析构函数,和非无用的析构函数。两者的分析情况一样(对于默认的构造函数分析,请参看《从汇编看c++中默认构造函数的使用分析》)。并且编译器会提供非无用的默认析构函数情形和默认构造函数类似:

1 类含有虚成员函数(类继承自虚基类或者继承的基类含有虚成员函数,也属于这种情况)

2 类继承自一个基类,基类含有自定义析构函数(如果基类没有自定义析构函数,但是编译器会为它提供一个非无用的默认析构函数,也属于这种情况。这就是说,只要基类含有一个析构函数,不管这个析构函数是自定义的,还是编译器提供的非无用的默认析构函数,都行)

3 类包含一个成员对象,该成员对象自定义析构函数(如果成员对象没有自定义析构函数,但是编译器会为它提供一个非无用的默认析构函数,也属于这种情况。这就是说,只要成员变量含有一个析构函数,不管这个析构函数是自定义的,还是编译器提供的非无用的默认析构函数,都行).

并且,对于编译器提供的默认析构函数,不管是无用的,还是非无用的,它们都不会自动清除对象里面所包含的资源。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/66723.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号