Error: cannot specify explicit initializer for arr

2020-02-06 06:58发布

问题:

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

回答1:

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.



回答2:

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"}
    {}
};