C和C++中的类中嵌套枚举类型作用域不同,在C中可以直接引用,而C++中作用域发生了变化,则仅类内可见,引用时必须加上类名。
以下面的结构体为例:
struct Date
{
int year;
int month;
int day;
enum WeekDay {
MONDAY = 1,
TUESDAY,
WEDNESDAY
} weekday;
};
在C中可以直接访问枚举类型:
printf("mon = %d\n", MONDAY);
在C++中必须加上类名:
printf("mon = %d\n", Date::MONDAY);
网友评论