本文共 1058 字,大约阅读时间需要 3 分钟。
构造函数顺序为:
注:static对象的构造函数永远只调用一次。
析构函数顺序为:
注:复合中的构造、析构顺序
构造:按声明对象的顺序来构造成员对象,而不是按照构造函数成员初始值列表中列出的顺序;而且在包含它们的类对象(宿主对象)被构造之前构造。即:由内向外构造。
析构:按对象构造的逆序析构。对于复合对象,先析构主对象,再析构其包含的对象。
//#i nclude <iostream.h> #i nclude <iostream> using namespace std; class Demo { int id; public: Demo(int i) { id = i; cout << "id=" << id << ",Con" << endl; } ~Demo() { cout << "id=" << id << ",Des" <<endl; } };Demo d1(4);void fun(Demo d) { static Demo d2(2); Demo d3(3); cout << "fun" << endl; } void main () { cout <<"main"<< endl; fun(d1); cout << "endmain" << endl; fun(d1); Demo * p = new Demo(8); }
id=4,Con
main
id=2,Con
id=3,Con
fun
id=3,Des
id=4,Des
endmain
id=3,Con
fun
id=3,Des
id=4,Des
id=8,Con
id=2,Des//id=4,Des //在用<iostream.h>的时候才有此句输出
转载地址:http://iazqi.baihongyu.com/