<分区>
我正在学习 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 } }
但它不起作用。
有什么建议吗?也许我不能使这个 vector 恒定或静态,或者...
我试过 bgal[0][0] = { ...}; bgal[0][1] = { ...};
但工作量很大。
这不是问题 Error: cannot specify explicit initializer for array 的重复因为该问题询问的是一维数组,它提供了一种使用 bgal[0][0] = { ...}; 初始化数组的解决方案; bgal[0][1] = { ...};
这是很多工作。我问是否有另一种方法可以更快地做到这一点。
在查找可能重复的问题之前,请仔细阅读问题。