c++ - 是否有一种有效、正确的方法将非常大的公共(public)类枚举放在使用它们的公共(public)方法下面,以使代码更干净?

标签 c++ class enums

总而言之,我有这样的代码

class c {
public:
    enum enumType { .... }; // huge!
    int function( enumType e );
private:
    ...    
}

代码工作正常,但我想让它更干净一点。枚举有两页长,这使得接下来的人很难编写代码。我想我可以将它放在自己的头文件中,我认为这是最好的解决方案。我只是想知道是否有一种更优雅的方法来做到这一点,而不需要外部文件?

谢谢

最佳答案

一种可能的选择是使用枚举类,它可以被前向声明:

class Foo {

    enum class bar;

    int foo(bar);
};

enum class Foo::bar {baz, blah};

int Foo::foo(bar b)
{
    return b == bar::baz ? 1:0;
}

当然,使用枚举类意味着一些额外的输入。但是,作为额外的好处,您可以获得更好的类型安全性。

关于c++ - 是否有一种有效、正确的方法将非常大的公共(public)类枚举放在使用它们的公共(public)方法下面,以使代码更干净?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42406066/

相关文章:

c++ - 数组、对象、类来组织具有多项选择和真/假问题的测试问卷程序

c++ - 我可以使用枚举作为结构名称吗?

c++ - G++ Linux 终端中的 <curses.h>;<curse.h>;<conio.h> 问题

c++ - LPCSTR- 如何检查第一个位置是否为空格 ""

c++ - 检查库并在 opencv 中编译

c++ - 数据成员/代码指针偏移量

python - 类返回空列表

java - Java中Calendar类的before方法出错

c++ - 枚举和类 - 运行时错误!!

c# - [Flags] 属性的真正作用是什么?