在生成的类中,我有一个匿名枚举,有很多成员,有些名字很长,如下所示:
class ContainerClass {
public:
enum { Enum1, EnumWithLongName2 ...};
};
Run Code Online (Sandbox Code Playgroud)
这可以很好地表达这些枚举仅属于该类.但有时候我有一个很大的这些枚举列表(例如在单元测试的结果列表中),当我必须使用类的名称限定每个枚举时,它会变得非常大.有没有办法在这种情况下添加快捷方式,以便我可以省略类名?
我查看了C++的类型别名,但这似乎没有帮助.其他想法?
是的,有一个:派生类继承枚举名称,可以使用它们而无需进一步限定.
因此,创建一个继承自ContainerClass定义列表的辅助类.但是,辅助类不打算实例化(您不希望创建另一个ContainerClass基础子对象),因此将列表定义为static成员:
class enumList : public ContainerClass {
enumList() = delete;
public:
static decltype(Enum1) list[2] = { Enum1, EnumWithLongName2 };
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |