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

ten*_*kii 1 c++ enums

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

我真的很困惑,为什么新变量c的声明在声明一个新的枚举的同一行(对我来说看起来像一个typedef):

 enum color { red, green, blue } c;
 c = blue;
Run Code Online (Sandbox Code Playgroud)

如果我们想制作一个颜色类型的新变量,我就不能写

enum color {red,green,blue} newVar;
Run Code Online (Sandbox Code Playgroud)

正确?在C++中它是枚举颜色还是只是颜色?

jwo*_*der 5

目前color已声明,您可以在末尾添加一个或多个变量以将它们声明为类型color,但这是您可以执行此操作的唯一位置.因此,你可以写:

enum color { red, green, blue } c;
color d;
Run Code Online (Sandbox Code Playgroud)

要么:

enum color { red, green, blue };
color c, d;
Run Code Online (Sandbox Code Playgroud)

但不是:

enum color { red, green, blue } c;
enum color { red, green, blue } d;
Run Code Online (Sandbox Code Playgroud)

而且不是:

enum color { red, green, blue };
enum color { red, green, blue } c;
Run Code Online (Sandbox Code Playgroud)

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