我应该首先说我对OOP还不熟悉。我正在尝试编写一个可能在多个程序中使用的可移植类。该类需要多个枚举列表来存储仅与类相关的信息,因此我计划将枚举嵌套在类中。我的问题是
是否有理由在课堂内使用enum class
,还是应该使用enum
?只是好奇。我发布了示例代码供以下参考。
为什么在公开课堂上制作词汇是一个非常糟糕的主意?
#include <iostream>
enum class Color {
red = 0,
green = 1,
blue = 2
};
class CodeLibray {
public:
enum Color2 {
red = 0,
green = 1,
blue = 2
};
enum class Color3 {
red = 0,
green = 1,
blue = 2
};
Color color;
Color2 color2;
Color3 color3;
};
int main(){
CodeLibray c;
c.color = Color::red;
c.color2 = CodeLibray::Color2::blue;
c.color3 = CodeLibray::Color3::blue;
}
答案 0 :(得分:2)
- 是否有理由在课堂内使用
enum class
,还是应该使用enum
?只是好奇。我发布了示例代码 参考下文。
很明显,enum
中定义的CodeLibray
值如果省略enum class
就会变得很暧昧。
- 此外,如果我希望枚举可以分配公共成员值,但我不希望枚举中的值被更改,这是 可能的?
我不完全明白你的意思。只是在黑暗中拍摄,如下所示?
enum Color2 {
red = ::red,
// ^^ Refer to the enum declaration in the global namespace
green = ::green,
blue = ::blue
};
enum class Color3 {
red = ::red,
green = ::green,
blue = ::blue
};