C++ - 对声明枚举感到困惑

标签 c++ enums

所以我正在关注 tutorialspoint 上的 C++ 教程。

我真的很困惑为什么新变量 c 的声明与新枚举的声明在同一行(对我来说有点像 typedef 的东西):

 enum color { red, green, blue } c;
 c = blue;

如果我们想创建一个颜色类型的新变量,我不能写

enum color {red,green,blue} newVar;

对吗?在 C++ 中,它是枚举颜色还是只是颜色?

最佳答案

在声明color的那一刻,你可以在末尾添加一个或多个变量来声明它们为类型color,但这是你唯一需要的地方可以做到这一点。因此,你可以这样写:

enum color { red, green, blue } c;
color d;

或:

enum color { red, green, blue };
color c, d;

但不是:

enum color { red, green, blue } c;
enum color { red, green, blue } d;

也不是:

enum color { red, green, blue };
enum color { red, green, blue } c;

关于你的最后一个问题,类型的名称只是color,但为了保持与C的向后兼容性,将其称为enum color(例如,enum color d;) 也是可以接受的。

关于C++ - 对声明枚举感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25149534/

相关文章:

c++ - 具有中间变量的 Eigen 惰性评估

c++ - 性能断言

c++ - 新表达式会返回一个指向数组的指针吗?

c++ - 这个关于确定将参数传递给函数的方法的技巧给我带来了一些困惑

c++ - C++ 中 STL::MAP 的内部实现

java - 为什么空枚举不能有抽象方法?

python - 如何操作 Google Ads API 的 Enum 类的对象 - python

mysql - 在 MySQL 中使用字符串枚举 - 性能问题

Java 通用枚举作为参数

Java - Intellij IDEA 在枚举 getter 方法 lambda 中警告 NPE