刚开始看 Qt tutorial 时候,对 new 创建的对象,没有代码 delete 很不习惯,要知道内存管理对于服务器来说可是非常重要的,不仅不能有内存泄露,还要利用 memory pool 机制避免内存碎片等问题。今天在阅读<<C++ GUI Qt4编程(第二版)>>的时候,终于明白了它的父子对象机制对内存管理的实现。
Qt的父子对象机制是在 Qobject 实现的。当利用一个父对象创建一个子对象的时候,父对象会自动把这个子对象添加到自己的子对象列表中。当删除这个父对象的时候,它会遍历子对象列表并且删除每一个子对象。因此我们需要明确删除的是那些使用 new 创建却没用父对象的对象。当我们创建窗体的时候,通常都会利用 layout 管理那些子部件,这样实际上就自动将那些部件的父对象设置成窗体了。
初步印象,这本书值得一读,对于初学 GUI 编程都有好处,可以获得比较良好的 GUI 编程入门知识。