错误:无法为数组指定显式初始化程序

时间:2014-05-27 22:50:33

标签: c++ arrays c++11 visual-studio-2013

我使用Visual Studios 2013并且我一直收到此错误但我不明白为什么。

class CLI{
    string commands[2] = {"create", "login"};
public:
    void addCommand(), start(), getCommand(string);
};

错误:

error C2536: 'CLI::CLI::commands': cannot specify explicit initializer for arrays

2 个答案:

答案 0 :(得分:15)

Visual Studio 2013并不完全符合C ++ 11标准,因此,像Tobias Brandt所说,您需要使用构造函数来初始化这些成员。

支持的初始化列表是C ++ 11的一项功能。

答案 1 :(得分:2)

我不认为在VC2013中实现了类内成员初始化程序。而是在构造函数中初始化数组。例如:

class CLI{
    string commands[2];
public:
    CLI() : commands {"create", "login"}
    {}
};