我正在学习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