Error: cannot specify explicit initializer for arr

2020-02-06 06:32发布

I'm using Visual Studios 2013 and I keep getting this error yet I don't understand why.

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

The error:

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

2条回答
对你真心纯属浪费
2楼-- · 2020-02-06 07:12

I don't think that in-class member initializers are implemented in VC2013. Instead, initialize the array in a constructor. For example:

class CLI{
    string commands[2];
public:
    CLI() : commands {"create", "login"}
    {}
};
查看更多
够拽才男人
3楼-- · 2020-02-06 07:24

Visual Studio 2013 is not completely C++11 compliant, so, like Tobias Brandt said, you'll need to use a constructor to initialize those members.

Braced init lists are a C++11 feature.

查看更多
登录 后发表回答