读书人

用QT编程是如何实现内存管理的如何没

发布时间: 2012-02-04 15:43:09 作者: rapoo

用QT编程是怎么实现内存管理的,怎么没有析构函数?
正想学习QT,
我看了QT SDK中的实例程序,发现它和VC写的类中的一个最大区别是居然没有析构函数!
比如在类中定义:QPlainTextEdit *textEdit;并且在QT构造函数中 textEdit = new QPlainTextEdit;

没有析构函数,用new创建的资源是怎么回收的?编译器处理的?
呃,关键字delete好像也没见!!

感觉如果去掉指针就是java了,风格和Java很相近呀,大家说是不是?


[解决办法]
应该里面实现了智能指针。

[解决办法]
Qt automatically deletes child objects when the parent is destroyed
[解决办法]
qt的这个设计可能更应该被看成是缺陷。
[解决办法]
多数 QObject 的构造函数都有一个 parent 参数,各个部件就是这样串起来的。
Qt 运行库负责保证这样串起来的对象会自动自顶向下销毁。
[解决办法]
QT会自动为你做这些,你可以无视它,自己动手析构,也是ok的
[解决办法]
跟java很像吧,不用你自己管理内存了。但写的方式却是c++的,带了个*, 不用delete了。

读书人网 >C++

热点推荐