C&C++类中嵌套枚举的使用方式

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);

你可能感兴趣的:(C&C++类中嵌套枚举的使用方式)