在下面,可以通过类的名称访问该类中的 enum 的值。(我什至没有实例化该类!)
class Shifting
{
public:
enum Value: char
{
UP, RIGHT, DOWN, LEFT
};
private:
Value value_;
};
std::cout << Shifting::RIGHT << std::endl; // 1
这是否意味着类中的枚举是静态的?
如果没有,如何静态声明一个枚举?
答案 0 :(得分:2)
此
enum Value: char
{
UP, RIGHT, DOWN, LEFT
};
这是类型的声明。它不是封闭类的数据成员。该类只有这个私有数据成员。
Value value_;
枚举数据。
枚举声明声明命名的枚举器。但是它们又不是封闭类的数据成员。
如果要在类内声明嵌套结构,则相同。例如
struct A
{
struct B
{
int x = 10;
};
B b;
};
这里只有A类的一个数据成员,即B b。结构声明中的数据成员仅提供结构B的声明。