枚举的使用 - 全局和本地

Usage of enum - global and local

本文关键字:全局 枚举      更新时间:2023-10-16

我只是尝试使用与本地定义同名的全局定义的枚举。

除了起点之外,我使用相同的值进行了初始化。

enum Day {Sunday = 1 ,Monday,Tuesday,Wednesday,Thursday,Friday /*= 15 */,Saturday};
void enumUse() {
    enum Day {Sunday = 2 ,Monday,Tuesday,Wednesday,Thursday,Friday /*= 15 */,Saturday};
    Day today = Tuesday;
    cout<<Sunday<<endl;
    cout<<Monday<<endl;
    cout<<Tuesday<<endl;
    cout<<Wednesday<<endl;
    cout<<Thursday<<endl;
    cout<<Friday<<endl;
    cout<<Saturday<<endl;
    cout<<"Today: "<<today;
    cout<<endl;
}

此代码片段给出本地枚举的输出。

如果将其注释掉,它将给出与全局 1 相关的输出。

如何在不注释本地枚举的情况下使用全局枚举。

可以使用

范围解析运算符,因为全局Day是在全局范围内定义的

//'Day' from global scope
::Day today = ::Tuesday; //'Tuesday' also needs it because it would take the local one,
                         //which can't be assigned to the global 'Day' (they're different
                         //enums after all)