基本上,如果我不这样做,所有对象都会获得所有枚举值的拷贝?
ps:一如既往,欢迎引用您的答案...
最佳答案
使用 enum 关键字实际上是在定义一个类型,而不是像数据成员那样定义存储。
就像定义一个内部类,像这样:
class X
{
private:
class InnerClass
{
...
};
};
InnerClass 定义只是一个定义。它只是在外部类 X 的上下文中定义了类型,因此 InnerClass 只能称为 X::InnerClass。 但它绝对不会占用 X 类实例中的任何空间。
关于枚举的说明:枚举值实际上是整数,这些整数在代码中需要的地方使用。通常没有所有枚举值的中央存储。枚举只是定义了标记和数值之间的映射,代码中使用标记的任何地方,编译器都会用数值替换它。
关于c++ - 如果我在静态类中创建一个枚举,会有什么不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3937897/