Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么Qt creator创建的类没有析构函数?_C++_Qt - Fatal编程技术网

C++ 为什么Qt creator创建的类没有析构函数?

C++ 为什么Qt creator创建的类没有析构函数?,c++,qt,C++,Qt,每次创建类时,类的主体中都没有析构函数?为什么呢?VisualStudio将自动创建析构函数,但Qt创建者不会。在QT?< P>中,在大多数设计良好的C++类中,有没有什么特殊的东西?在析构函数中不需要任何自定义代码,默认行为是正确的(即破坏所有成员)。 您可以添加析构函数,当然,请注意QtCuror通过允许从实现中自动创建声明或通过相反的方式(例如上下文菜单->重构因子>添加公共声明)来减轻头/实现二元性的C++烦恼度。它只是在需要时由编译器创建的。要创建没有析构函数的类,必须显式地编写~My

每次创建类时,类的主体中都没有析构函数?为什么呢?VisualStudio将自动创建析构函数,但Qt创建者不会。在QT?

< P>中,在大多数设计良好的C++类中,有没有什么特殊的东西?在析构函数中不需要任何自定义代码,默认行为是正确的(即破坏所有成员)。
<>您可以添加析构函数,当然,请注意QtCuror通过允许从实现中自动创建声明或通过相反的方式(例如上下文菜单->重构因子>添加公共声明)来减轻头/实现二元性的C++烦恼度。它只是在需要时由编译器创建的。要创建没有析构函数的类,必须显式地编写
~MyClass=delete
。(这通常是一个坏主意-最好是删除构造函数)因此,如果我们
新建
构造函数中的某些内容,是否应该让垃圾收集器来清理?如果你可以在构造函数中创建对象的上下文中更新答案,这是我们使用析构函数来清理的最常见的原因。@ ZADAN:在现代C++中代码>新的< /代码>,特别是用裸指针,很少使用,因为你需要在适当的时候处理处理。例如,如果在类中放置一个
std::vector
析构函数中不需要任何内容(例如,如果在构造过程中抛出异常,则不会有泄漏的风险-如果使用
new
显式分配,则应该注意这一点,因为在构造过程中出现异常时,不会调用对象的析构函数)。