10 63 D:\dev c++\cifa2.cpp [Error] in C++98 'TERMINALS' must be initialized by constructor, not by '{...}'
时间: 2023-12-10 07:39:39 浏览: 142
C++编译出现的错及修正
这个错误是因为在 C++98 标准下,数组的初始化必须通过构造函数进行,不能使用花括号列表初始化。要解决这个错误,你可以在定义数组时使用构造函数进行初始化,或者将编译器的标准设置为 C++11 或更高版本,这样就可以使用花括号列表初始化了。如果你希望使用构造函数进行初始化,可以将数组定义为类的成员变量,并在类的构造函数中进行初始化。例如:
```c++
class MyClass {
public:
MyClass() : TERMINALS({ '+', '-', '*', '/' }) {}
private:
char TERMINALS[4];
};
```
这样就可以通过构造函数进行数组的初始化了。如果你希望使用花括号列表初始化,可以将编译器的标准设置为 C++11 或更高版本。在大部分现代编译器中,可以通过命令行参数 `-std=c++11` 来设置编译器的标准。
阅读全文