C语言中的枚举型定义比较松
enum side{RIGHT, LEFT} mode;
enum thing{RIGHT, WRONG} mode2;
这样两句,因为GRADE重名,将会报错。
而枚举类则不会
enum class Side{Right, Left};
enum class Thing{Wrong, Right};
int main(){
Side s=Side::Right;
Thing t=Thing::Right;
return 0;
}
以上貌似是C++11的标准。
结构体和联合体用法和C一模一样,可以说结构体和联合体是为了兼容C而继续存在的。