struct array中的初始化器也可以吗?

时间:2016-07-10 23:43:31

标签: c++ c++11

struct  Marker
{
static int self_unum;
static  int mark_unum;
static  bool is_marking;
static  int last_mark_cycle;
};
static Marker Team[11]={ {0,0,false,0} };

错误:  /home/d/Documents/alice/src/Miracle_Mark_System.cpp:32:错误:“标记”的初始化程序太多  static Marker Team [11] = {{0,0,false,0}};                                         ^                                         ^

                                    ^                                        

1 个答案:

答案 0 :(得分:4)

static关键字用于定义类,而不是实例,成员。这意味着它们是未附加到Marker的任何特定实例的符号,并使用语法ClassName::classMember(例如Marker::self_unum)进行访问,而不是instanceName.instanceMember(例如{{1} }})。

所以Team[0].self_unum本身就是一个没有字段的结构,这就是你得到错误的原因。

从字段声明中删除无用的Marker关键字:

static