C++ static struct init - item不命名类型

jav*_*web 1 c++ static struct initialization

我试图将我的解决方案放在一个静态类中,其定义如下:

class myDataParser{
    private:

    public:
    struct myData{
        struct index {
            static int item1,item2,item3,item4;
        };
        static char delimiter;
    };

};
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在主程序中初始化项目时,如下所示:

myDataParser::myData::delimiter = ';';
myDataParser::myData::index::item1 = 0;
myDataParser::myData::index::item2 = 1;
myDataParser::myData::index::item3 = 2;
myDataParser::myData::index::item4 = 3;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

'item1' in 'struct myDataParser::myData::index' does not name a type
Run Code Online (Sandbox Code Playgroud)

...同样适用于分隔符和item2-4,我做错了什么?我该如何正确设置这些成员?

P0W*_*P0W 6

前缀的数据类型char,int等来定义静态成员: -

char myDataParser::myData::delimiter = ';';
~~~
int myDataParser::myData::index::item1 = 0;
~~~

//....
Run Code Online (Sandbox Code Playgroud)

  • 它工作:)!但为什么 ?:D为什么我需要说明已经陈述的内容? (4认同)