程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-C++類構造函數初始化列表

c++-C++類構造函數初始化列表

編輯:編程綜合問答
C++類構造函數初始化列表

#include
using namespace std;
class A
{
private:
int n1;
int n2;

public:
A()
{
n2=0;
n1=n2+2;
}//輸出結果為:n1:2, n2: 0

A():n2(0),n1(n2+2){}//輸出結果為n1:-858993458, n2: 0

//上面這兩種方式有啥區別,求指導,為啥結果不一樣
void Print(){
cout << "n1:" << n1 << ", n2: " << n2 <<endl;

}
};

int main()
{

A a;
a.Print();
return 1;

}

最佳回答:


類成員的初始化順序是他們在類定義中出項的順序,而不是他們在初始化列表中出現的順序。

所以在你的初始化列表中,n1 先初始化,這時引用了還沒有初始化的 n2 的值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved