标签:
例5.1
分析下面程序中析构函数与构造函数的调用顺序。
1 #include<iostream> 2 3 using namespace std; 4 5 class object 6 { 7 private: 8 int val; 9 public: 10 object() :val(0) 11 { 12 cout << "Ddfault constructor for object" << endl; 13 } 14 object(int i) :val(i) 15 { 16 cout << "Constructor for object " << val << endl; 17 } 18 ~object() 19 { 20 cout << "Destructor for object" << val << endl; 21 } 22 }; 23 24 class container 25 { 26 private: 27 object one;//初始化顺序与对象成员产生的顺序有关 28 object two;//排在前面的先初始化 29 int data; 30 public: 31 container() :data(0) 32 { 33 cout << "Ddfault constructor for object" << endl; 34 } 35 container(int i, int j, int k); 36 ~container() 37 { 38 cout << "Destructor for object" << data << endl; 39 } 40 }; 41 42 container::container(int i, int j, int k) :two(i), one(j)//与初始化列表顺序无关 43 { 44 data = k; 45 cout << "Constructor for container " << data << endl; 46 } 47 48 void main() 49 { 50 container obj, anObj(5, 6, 10); 51 52 system("pause"); 53 }
例5.2
分析下面程序的输出结果。
123
标签:
原文地址:http://www.cnblogs.com/denggelin/p/5586026.html