有人可以告诉我以下代码中的::CLOSE
是什么:
Fight c;
c.type = Fight::CLOSE; //CLOSE can also become ::RANGE
我必须创建Fight类,但我不知道::CLOSE
部分是什么。
我只知道c.type
是bool或int。
编辑:枚举,不是int或bool
答案 0 :(得分:3)
Fight
必须是class
或struct
(可能是结构),因此CLOSE
是公共常量或来自enum
的值在该类中声明。那就是:
class Fight {
public:
const bool CLOSE = false;
//...
};
或
class Fight {
public:
enum Status {
CLOSE
}
//...
};
既然你说“c.type是bool或int”,我认为第一个更可能是你的Fight
类的定义。
答案 1 :(得分:2)
更有可能是enum
,但还可以。
内部Fight
将是:
enum Something
{
CLOSE, RANGE
};
然后Fight::CLOSE
和Fight::RANGE
是具有不同值的整数常量。
在C ++手册中阅读枚举(“枚举类型”)。
::
语法(在此上下文中)是您访问类的静态成员的方式。例如,您调用静态成员函数,如Fight::someFunc()
。
答案 2 :(得分:1)
它是类Fight
的静态成员。
答案 3 :(得分:0)
这是在Fight
类范围内声明的名称。它可能应该被声明为枚举。
struct Fight {
enum Status {
CLOSE,
RANGE
}
Status type;
//...
}
枚举将名称(CLOSE
,RANGE
)导出到封闭范围,即本例中类的范围。转换为int
后,CLOSE
将产生0,RANGE
将产生1.(具有此声明顺序)
答案 4 :(得分:0)
可能是以下之一
- 枚举嵌套在类中。
- 公开下的静态数据成员。
- int / bool公共数据成员。
醇>