我正在學習C++,並且遇到問題。我有這樣的聲明在類的頭文件:在C++中初始化一個二維數組
double bgal[3][3] =
{ { -0.066988739415,-0.872755765852,-0.483538914632 },
{ 0.492728466075,-0.450346958020, 0.744584633283 },
{ -0.867600811151,-0.188374601723, 0.460199784784 } };
與Visual Studio 2015年編譯罰款,但與Visual Studio 2013年不會編譯。我收到此消息:
cannot specify explicit initializer for arrays
我認爲問題與Visual Studio 2013不支持C++ 11和編譯器錯誤C2536有關。
我試圖在類構造函數中移動該初始化,但它不起作用。此:
MyClass::MyClass() : bgal { { -0.066988739415, -0.872755765852, -0.483538914632 },
{ 0.492728466075, -0.450346958020, 0.744584633283 },
{ -0.867600811151, -0.188374601723, 0.460199784784 } }
但它不起作用。
有什麼建議嗎?也許我不能使這個矢量恆定或靜態,或...
我試過bgal[0][0] = { ...}; bgal[0][1] = { ...};
但它是很多工作。
這不是問題Error: cannot specify explicit initializer for array的重複,因爲該問題詢問了一維數組,並且它提供了一個解決方案,用bgal[0][0] = { ...}; bgal[0][1] = { ...};
來初始化數組,它有很多工作。我問是否有另一種方法可以更快地做到這一點。
在尋找可能的重複問題之前,請仔細閱讀該問題。
您是否必須爲VS2013明確設置編譯器設置才能啓用C++ 11? –
可能重複的[錯誤:不能指定數組顯式初始化](http://stackoverflow.com/questions/23900191/error-cannot-specify-explicit-initializer-for-array) –
@BartoszPrzybylski請閱讀我的更新。在問我之前,我已經發現了這個問題,它的解決方案在我的問題上,我問是否有其他解決方案。 – VansFannel