我有如下课程:
class Car
{
public:
Car();
// Some functions and members and <b>enums</b>
enum Color
{
Red,
Blue,
Black
};
Color getColor();
void setColor(Color);
private:
Color myColor;
}
我想要:
- 访问
Color
值作为Color::Red
。Car::Red
当使用时,当类有很多枚举,子类等 时,真的很难理解代码。 - 使用类型
Color
作为函数参数或返回值 Color
使用变量类型switch
我知道 3 个部分解决方案:
- 在其中使用嵌入式类
Color
和枚举 - 在其中使用嵌入式命名空间
Color
和枚举 - 使用
enum class
1 和 2 解决方案解决了Color::Red
加入问题,但我不能使用Color getColor()
和void setColor(Color)
.
3解决方案有问题:VS2010不支持enum class
. GCC v.4.1.2 也不支持它。我不知道 gcc 的更高版本。
是的,我正在开发跨平台项目。
我找到了这个解决方案,但它似乎......很重。
我希望有人可以在这里帮助我:)