1 /* 2 1.成員是按照他們在類中出現的順序進行初始化的,而不是按照他們在初始化列表出現的順序初始化的! 3 一個好的習慣是,按照成員定義的順序進行初始化。 4 2.數組成員在初始化型參列表中不正確 5 */ 6 #include<iostream> 7 #include<cstdio> 8 #include<cstring> 9 #include<algorithm> 10 11 using namespace std; 12 13 14 struct node{ 15 int i, j; 16 int num[12]; 17 //node(int x) : j(x), i(j){}//錯誤的初始化啊 18 /* 19 這里i的值是未定義的因為雖然j在初始化列表里面出現在i前面,但是i先于j定義,所以先初始化i, 20 而i由j初始化,此時j尚未初始化,所以導致i的值未定義, 然后才對 j 進行初始化。 21 */ 22 //node(): num[1](1), num[2](3){}//錯誤的書寫 23 node(int x) : i(x), j(i){} 24 void out(){ 25 cout<<i<<" "<<j<<endl; 26 } 27 }; 28 29 int main(){ 30 node a(4); 31 a.out(); 32 return 0; 33 }
?