【问题标题】:Use enum inside struct inside class?在类内的结构内使用枚举?
【发布时间】:2011-12-04 23:57:33
【问题描述】:

我在枚举周围包裹了一个结构以获得一个作用域枚举。例如:

namespace Xyz
{
    struct SortDirection
    {
        enum Enum {ASC, DESC};
    };

    class MyClass
    ...

这很好用。现在我正在尝试定义相同类型的枚举/结构组合,但这次 inside 类:

class MainDialog
{
public:
    ...
private:
    struct SomeType
        enum Columns {
        ROW_NUMBER_COLUMN,
        NAME_COLUMN,
        AGE_COLUMN,
        COLUMN_MAX_COUNT_
        };
    };

}

但是这给了我一个智能感知错误:

错误:类型说明符的组合无效

当我尝试编译时,我得到:

1>c:\something\maindialog.h(80): error C2236: unexpected
'enum' 'MainDialog::Columns'. Did you forget a ';'?

枚举在结构内工作正常不是,但是一旦我将它包装在结构中,我就会收到此错误。

【问题讨论】:

  • 这是数据结构的大炮。

标签: c++ class enums struct


【解决方案1】:

//这是正确的代码。

private:     
    struct SomeType 
    {        
        enum Columns 
        {         
            ROW_NUMBER_COLUMN,
            NAME_COLUMN,
            AGE_COLUMN,
            COLUMN_MAX_COUNT_
        };
     }; 

【讨论】:

    【解决方案2】:

    您错过了一个左大括号。编译器看到struct SomeType enum Columns,不知道怎么处理。

    【讨论】:

      【解决方案3】:

      试试

      struct SomeType { // Note the open brace
      

      【讨论】:

      • 我去过那里......我怀疑这发生在我们所有人身上。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 2013-06-19
      相关资源
      最近更新 更多