在生成的类中,我有一个匿名的枚举,其中包含许多成员,其中一些成员的名字很长,如下所示:

class ContainerClass {
public:
  enum { Enum1, EnumWithLongName2 ...};
};

很好地表示这些枚举完全属于该类。但是有时我会列出大量此类枚举(例如在单元测试的结果列表中),当我必须用类名来限定每个枚举时,这些枚举会变得非常大。在这种情况下是否可以添加快捷方式,以便我可以省略类名?

我看着C++'s type alias,但这似乎无济于事。还有其他想法吗?

最佳答案

是的,只有一个:derived class继承枚举名称,无需进一步限定即可使用它们。

因此,创建一个从ContainerClass继承的帮助程序类以定义列表。但是,不打算实例化helper类(您不想创建另一个ContainerClass基础子对象),因此将列表定义为static成员:

class enumList : public ContainerClass {
        enumList() = delete;
    public:
        static decltype(Enum1) list[2] = { Enum1, EnumWithLongName2 };
};

关于c++ - C++类中嵌套类型的快捷方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38694738/

10-09 13:38