c++ - 如果我在静态类中创建一个枚举,会有什么不同吗?

标签 c++ class enums

基本上,如果我不这样做,所有对象都会获得所有枚举值的拷贝?

ps:一如既往,欢迎引用您的答案...

最佳答案

使用 enum 关键字实际上是在定义一个类型,而不是像数据成员那样定义存储。

就像定义一个内部类,像这样:

class X
   {
   private:
      class InnerClass
         {
         ...
         };
   };

InnerClass 定义只是一个定义。它只是在外部类 X 的上下文中定义了类型,因此 InnerClass 只能称为 X::InnerClass。 但它绝对不会占用 X 类实例中的任何空间。

关于枚举的说明:枚举值实际上是整数,这些整数在代码中需要的地方使用。通常没有所有枚举值的中央存储。枚举只是定义了标记和数值之间的映射,代码中使用标记的任何地方,编译器都会用数值替换它。

关于c++ - 如果我在静态类中创建一个枚举,会有什么不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3937897/

相关文章:

c++ - 跨文件共享静态变量 : namespace vs class

c++ - & 和 * 作为参数的区别

c++ - 使用 OpenGL 进行实时逐像素过滤的最佳方法?

python - 这段代码是在哪个类中定义的?

java - 如何使用另一个类中一个类的 boolean 方法来检查字符串参数?

c++ - 错误: invalid conversion from ‘int’ to enum c++

c++ - Pthread查询: Sequence of threads error

c++ - 带有静态变量的静态内联函数

c# - 如何避免在 C# 中使用枚举重复代码?

java - 获取字符串并一次与多个枚举类型进行比较