Qt中的内存管理?

我对Qt还是很陌生,想知道一些有关内存管理和对象生命的基本知识。什么时候需要删除和/或销毁我的对象?有没有自动处理的?


在下面的示例中,我需要删除哪些对象?销毁实例变量myOtherClass时会发生什么myClass?如果我根本不删除(或销毁)对象,会发生什么?这会成为记忆问题吗?


MyClass.h

class MyClass

{


public:

    MyClass();

    ~MyClass();

    MyOtherClass *myOtherClass;

};

MyClass.cpp

MyClass::MyClass() {

    myOtherClass = new MyOtherClass();


    MyOtherClass myOtherClass2;


    QString myString = "Hello";

}

如您所见,这是个非常容易上手的东西,但是我可以在哪里轻松学习呢?


开心每一天1111
浏览 627回答 4
4回答

Cats萌萌

为了补充这些答案,为了验证,我建议您Visual Leak Detetor为Visual c ++项目使用库,包括Qt项目,因为它基于c ++,该库与new, delete, free and malloc语句兼容,有据可查且易于使用。不要忘记,当您创建自己的QDialog或QWidget继承的接口类,然后创建该类的新对象时,请不要忘记执行setAttribute(Qt::WA_DeleteOnClose)对象的功能。
打开App,查看更多内容
随时随地看视频慕课网APP