我具备相当扎实的 C 背景和较为坚实的 C++ 基础。最近我一直在使用 C# 和其他高级语言。我正在考虑使用 QT4 开发一个项目,但是我有一些关于内存管理的问题无法理解。我已经阅读了 QT4 文档,但并没有帮助我太多。所以我来这里求助。
首先,我知道使用 QT4 对象的最简单方法是将它们声明为局部变量。
这很简单,我可以接受该对象并传递它,并知道当它超出范围时它将被销毁。但是我的问题在于:
1)如果我创建一个QList并添加对象到其中,然后QList超出范围,它会尝试释放子对象吗?
2)如果QT4例程返回指向对象的指针,那么我是否需要负责释放该对象?
3)如果我创建一个QWidget的子类,并将其添加到QWindow中,如何确保当QWindow被销毁时,它带走了我的小部件?
感谢您的帮助。
首先,我知道使用 QT4 对象的最简单方法是将它们声明为局部变量。
void MyFunc()
{
QString foo;
// do stuff to foo
}
这很简单,我可以接受该对象并传递它,并知道当它超出范围时它将被销毁。但是我的问题在于:
1)如果我创建一个QList并添加对象到其中,然后QList超出范围,它会尝试释放子对象吗?
2)如果QT4例程返回指向对象的指针,那么我是否需要负责释放该对象?
3)如果我创建一个QWidget的子类,并将其添加到QWindow中,如何确保当QWindow被销毁时,它带走了我的小部件?
感谢您的帮助。