c++ - 在类内的结构中定义枚举

标签 c++ class struct enums

我见过有人写这样的代码......这有什么意义..

class Test 
{
public:

    struct MethodEnum
    {
        enum Enum
        {
             Method1,
             Method2
        };
    };
};

最佳答案

在 C++11 之前的版本中,enum 的标签没有作用域(这意味着这些标签无需任何 enum 类型的限定即可访问!)。因此,为了使它们具有作用域,程序员编写了这些代码。但在 C++11 中,不需要它,因为您可以使用 enum class 定义 scoped-enum。

所以在 C++11 中,您的代码将如下所示:

class Test 
{
public:
    enum class MethodEnum
    {
             Method1,
             Method2
    };
};

关于c++ - 在类内的结构中定义枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19844485/

相关文章:

c++ - 为什么 STL 仿函数本身是模板化的,而不是它们的函数调用运算符?

c++ - 有没有支持 TextMate-Like Snippets 的 C++ IDE?

Python:类方法内的变量

c - v[2] 在 c 中的结构方面意味着什么?

c++ - C++中有符号到无符号的转换

c++程序寻找猜谜游戏的解决方案

c - C 中的结构指针

c - C中的qsort结构,一些问题

c# - c# - 如何让一个类对象存储另一个类对象?

c++ - C++中作为类成员的分布