在类里面使用enum里面的struct?

时间:2011-10-11 04:14:37

标签: c++ class enums struct

我在枚举周围包含了一个结构来获取一个范围的枚举。 E.g:

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

    class MyClass
    ...

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

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 ';'?

enum在struct中运行良好 not ,但是只要我将它包装在struct中就会出现此错误。

3 个答案:

答案 0 :(得分:7)

尝试

struct SomeType { // Note the open brace

答案 1 :(得分:2)

你错过了一个开口大括号。编译器看到struct SomeType enum Columns并且不知道如何处理它。

答案 2 :(得分:1)

//这是正确的代码。

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