注册 登录
编程论坛 C++教室

请问一下编译器会自动给类加上默认的析构函数吗?

wenxinwukui 发布于 2010-11-15 16:30, 2016 次点击
各位请问一下:
    如果一个类或者struct没有析构函数,编译器会给自动加上一个默认的析构函数,那么析构函数呢?如果不显示写出来的话编译器会自动加上吗?
5 回复
#2
木头lbj2010-11-15 16:54
如果你没有写析构函授会自动加上。但是只要有了,不管是什么析构函数,编译器都不会再自动加上。
#3
南国利剑2010-11-15 22:17
会自动加上,但是这是一个空的构造函数,什么也不干。
#4
wenxinwukui2010-11-16 09:50
哦,谢谢,受教了。
#5
玩出来的代码2010-11-16 14:09
引用深度探索C++对象模型中的一句话:
如果class没有定义destructor,那么只有在class内带有member object(或是class自己的base class)拥有destructor的情况下,编译器才会自动合成一个来,否则destructor会被视为不需要,也就不需要被合成。
#6
wenxinwukui2010-11-17 16:11
回复 5楼 玩出来的代码
如果“destructor会被视为不需要,也就不需要被合成”的话,那new出来的对象怎么析构吧?
1