我刚刚开始使用qt-creator学习qt,我找到了一些作者根本不使用的教程int?这是好习惯吗?或者更好地管理我的物品破坏,提前谢谢
答案 0 :(得分:3)
当一个类没有声明析构函数时,编译器会自动给它一个等同于{}
的定义。通常在Qt中,即使该类包含指针,这也足够了。每当从QObject
派生的东西被销毁时,Qt也会自动删除它的所有子节点(递归地),只要每个子节点都传递了一个“父”指针。
如果你认为你的类的析构函数应该做什么,那么一定要自己定义它。
另一个怪癖:如果析构函数是类中定义的唯一虚拟方法,那么提供自己的非内联定义可以使某些系统上的链接器更容易生成C ++魔术数据(vtable)。
考虑到上述所有因素之后,是否允许默认的析构函数是一种良好的做法是一个观点问题。 (当我允许默认析构函数,复制构造函数,默认构造函数和/或赋值运算符时,我更喜欢在类定义的公共部分的注释中说。)
答案 1 :(得分:0)