使用Qt析构函数

时间:2010-10-10 21:28:44

标签: c++ qt

我刚刚开始使用qt-creator学习qt,我找到了一些作者根本不使用的教程int?这是好习惯吗?或者更好地管理我的物品破坏,提前谢谢

2 个答案:

答案 0 :(得分:3)

当一个类没有声明析构函数时,编译器会自动给它一个等同于{}的定义。通常在Qt中,即使该类包含指针,这也足够了。每当从QObject派生的东西被销毁时,Qt也会自动删除它的所有子节点(递归地),只要每个子节点都传递了一个“父”指针。

如果你认为你的类的析构函数应该做什么,那么一定要自己定义它。

另一个怪癖:如果析构函数是类中定义的唯一虚拟方法,那么提供自己的非内联定义可以使某些系统上的链接器更容易生成C ++魔术数据(vtable)。

考虑到上述所有因素之后,是否允许默认的析构函数是一种良好的做法是一个观点问题。 (当我允许默认析构函数,复制构造函数,默认构造函数和/或赋值运算符时,我更喜欢在类定义的公共部分的注释中说。)

答案 1 :(得分:0)