C++:
构造:先子类以及成员,再父类以及成员;
析构的顺序就是构造顺序的逆序。就是先析构父类,再析构子类。先析构本类,再析构本类的成员。
QT:
(1)控件类-->控件提升类-->QMainWindow类。
(2)子窗体的构造函数中初始化了父窗体的parent,当关闭子窗体时不会调用析构函数,只有关闭父窗体时,才会调用子窗体的析构函数。如果自己控制,则再子窗口构造函数中加入:setAttribute(Qt::WA_DeleteOnClose);
(3)如果子窗体传入了父指针的话,就不要自己close(),否则会在退出时出现析构时异常;
话外:对象的拷贝:
一个对象以值传递的方式传入函数体 ;
一个对象以值传递的方式从函数返回 ;
一个对象需要通过另外一个对象进行初始化。