小编div*_*ode的帖子

C++:使用“枚举类”在类中进行枚举

在类中编写枚举的正确方法是什么?我正在用 C++ 编写康威的生命游戏代码。所以我有一个模式类,其中包含有关不同类型模式的信息:

class Patterns
{
public:
    Patterns();
    ~Patterns(void);

private:
    enum class PatternType
    {
        bloat,
        block,
        blinker,
        toad
    };

    PatternType pattern_;
};
Run Code Online (Sandbox Code Playgroud)

我的目标不是污染这里的全球空间。这就是在类内部编写枚举的编写方式,同时牢记 oops 概念。如果没有,请建议一些更好的替代方法以及它们相对于此方法的好处是什么。欢迎任何有关在类中编写枚举时记住事项的意见。

编辑:@Jay Miller 根据他的输入,我尝试了他的所有三种方法

class Patterns
{
public:
    Patterns();
    ~Patterns(void);

private:
    enum class PatternType
    {
        bloat,
        block,
        blinker,
        toad
    };

    PatternType pattern_;
};
Run Code Online (Sandbox Code Playgroud)

我的发现(在尝试了代码并谷歌搜索了一下之后):

  1. 在我的例子中,PatternSimple 是在类内部编写枚举的最简单方法;但它会损害类型安全性,即我可以将枚举值与任何其他数据类型进行比较,并且不会给出任何错误。
  2. PatternClassIn 提供类型安全;但我必须在调用函数中编写更多代码才能访问枚举值。
  3. PatternClassOut 提供了两全其美的方法。它提供了类型安全性,此外,调用函数访问枚举值的代码与PatternSimple相同。

c++ enums enum-class

6
推荐指数
1
解决办法
9963
查看次数

标签 统计

c++ ×1

enum-class ×1

enums ×1