c++错误:在'{'标记之前不允许使用大括号括起来的初始化式

C++ error: a brace-enclosed initializer is not allowed here before ‘{’ token

本文关键字:起来 初始化 错误 c++ 不允许      更新时间:2023-10-16

简单问题:

我试图在c++类声明中初始化一个数组:

using namespace std;
#include <string>
class myClass{
public:
  string myArray[] = {"a","b","c"};
};

,我得到错误:

错误:在'{'标记

之前不允许使用大括号括起来的初始化式

不能,如果没有编译过的c++ 11编译器,就不能在其声明中初始化成员数组。必须在构造函数中初始化数组成员。如果你知道要初始化数组的元素个数,就不要使用open array

真正的问题很简单,非静态数组数据成员不能在没有绑定的情况下声明。在块作用域或命名空间作用域,将使用初始化器来推断大小,但在类作用域则不用。所以把这个改成:

string myArray[3] = {"a","b","c"};