构造初始化列表
构造对象成员的顺序跟初始化列表无关,跟定义顺序有关
1 #include <iostream> 2 3 using namespace std; 4 5 class info { 6 public: 7 info(int a) { 8 age = a; 9 cout << age << endl; 10 cout << "构造函数,自动调用" << endl; 11 } 12 13 ~info() { 14 cout << "析构函数,自动调用" << endl; 15 } 16 17 private: 18 int age ; 19 }; 20 21 class info1 { 22 public: 23 info1(int ag, info& a, info & b):info1_A(a), info1_B(b){ // 构造对象成员的顺序跟初始化列表无关 !! 24 info1_age = ag; 25 cout << "info1 构造函数" << endl; 26 } 27 28 ~info1(){ 29 cout << "析构函数,自动调用" << endl; 30 } 31 32 33 private: 34 int info1_age; 35 info info1_A; 36 info info1_B; // 跟定义顺序有关!! 37 }; 38 39 40 int main(void) { 41 42 43 info a(1), b(2); 44 45 info1 info_(1,a,b); // 创建之前必须先构造两个info对象! 46 47 system("pause"); 48 49 return 0; 50 }
笔记