我对Qt还是很陌生,想知道一些有关内存管理和对象生命的基本知识。什么时候需要删除和/或销毁我的对象?这是自动处理的吗?
在下面的示例中,我需要删除哪些对象?发生实例变量什么myOtherClass
时候myClass
被破坏?如果我根本不删除(或销毁)对象,会发生什么?这会成为记忆问题吗?
MyClass.h
class MyClass
{
public:
MyClass();
~MyClass();
MyOtherClass *myOtherClass;
};
MyClass.cpp
MyClass::MyClass() {
myOtherClass = new MyOtherClass();
MyOtherClass myOtherClass2;
QString myString = "Hello";
}
如您所见,这是个非常容易上手的东西,但是我在哪里可以以简单的方式了解到呢?
(It does this by issuing signals, so it is safe even when you delete child manually before the parent.)
->这不是安全的原因。在Qt 4.7.4中,直接删除了QObject子级(通过delete
,请参见qobject.cpp,第1955行)。首先删除子对象是安全的,原因是QObject告诉其父对象在删除时忘记了它。