C++類幾種初始化的順序


首先給段代碼:

 1 class A{
 2     public:
 3     int x=0;
 4     A():x(1){cout<<"A(): x="<<x<<endl;}
 5     A(int a):x(a){cout<<"A(int a): x="<<x<<endl;}
 6     A(int a,int b):x(a){
 7         cout<<"A(int a,int b): x="<<x;
 8         x=9;
 9         cout<<" "<<"x="<<x<<endl;
10     }
11 };
12 int main(){
13     A x1;
14     A x2(3);
15     A x3(5,7);
16     getchar();
17 }

輸出:

 

 

 可以看到順序為成員變量聲明時初始化>>>列表初始化>>>構造函數內部初始化

 

 

另外如果列表初始化有多個變量,初始化的順序是按照類中最初聲明的順序來的,而不是按你寫的A():a(1),b(2),c(3){}就會一定按a>>>b>>>c去初始化的!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM