Qt
Qt
目录
对象树和拥有权
对象模型(对象树)
parent-child机制
- 作用 - 介绍Qt时提到一点:一定程度简化垃圾回收机制,就是这个 —— 对象树机制
- 这意味着类与类为包含关系时,被包含的类可以使用new方式声明而不用在析构中销毁
 
- 简概 - Qt中创建对象时会提供一个Parent对象指针
- 注意,对象树不等于继承树
 
- 原理 - 当创建一个 - QObject对象时,其构造函数接受一个- QObject指针作为参数,这个参数是- parent,也就是- 父对象指针(不是父类)- 可以通过构造函数传入 - 父对象指针,也可以后期通过- setParent()函数修改- 父对象指针,一般为this
- 这个QObject对象会自动添加到父对象的 - children()列表
 
- 当 - 父对象析构时,这个列表中的所有对象也会被析构
- 这种机制在GUI程序设计中相当有用 
- 即:不需要delete QObject对象及其后代类 
 
- 补充 - 这里的设计可能有点反直觉:父对象指针为参,但目的是要调用*parent里面的addChildren()??方法来修改的是父对象中的children()列表
- 之所以这样设计 - 一是方便于为组件指定的父对象(如控件所属哪个窗口)
- 二是以便与在构造QObject对象时完成所有操作(而不是把QObject对象传入到包含它的类的方法参数里)
- 三是将children放在父对象中,当销毁父对象的时候不需要遍历所有对象,就能直接找到要销毁的子对象
 
 
链接到当前文件 0
没有文件链接到当前文件