相关疑难解决方法(0)

在类中声明枚举

在下面的代码片段中,Color枚举是在Car类中声明的,以便限制枚举的范围并尽量不"污染"全局命名空间.

class Car
{
public:

   enum Color
   {
      RED,
      BLUE,
      WHITE
   };

   void SetColor( Car::Color color )
   {
      _color = color;
   }

   Car::Color GetColor() const
   {
      return _color;
   }

private:

   Car::Color _color;

};
Run Code Online (Sandbox Code Playgroud)

(1)这是限制Color枚举范围的好方法吗?或者,我应该在Car类之外声明它,但可能在它自己的命名空间或结构中声明它?我今天刚刚看到这篇文章,主张后者并讨论关于枚举的一些好点:http: //gamesfromwithin.com/stupid-c-tr​​icks-2-better-enums.

(2)在这个例子中,当类中工作时,最好是将枚举编码为Car::Color,还是只需要Color?(我假设前者更好,以防万一Color在全局命名空间中声明了另一个枚举.这样,至少,我们明确指出我们所指的枚举.)

c++ enums scope namespaces class

140
推荐指数
4
解决办法
23万
查看次数

C++:使用方法的联合?

有一种或多种方法的工会有什么问题吗?还是要注意什么?(我可以看到构造函数/析构函数因精神分裂症原因而存在问题)

c++ methods unions

19
推荐指数
1
解决办法
5368
查看次数

标签 统计

c++ ×2

class ×1

enums ×1

methods ×1

namespaces ×1

scope ×1

unions ×1