【问题标题】:Usage of enum - global and local [duplicate]枚举的用法-全局和本地[重复]
【发布时间】:2016-06-06 11:52:37
【问题描述】:

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

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

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

这段代码 sn-p 给出了本地枚举的输出。

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

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

【问题讨论】:

    标签: c++ enums global local


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 2016-01-02
      • 2011-10-02
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      相关资源
      最近更新 更多