【发布时间】:2010-10-01 02:13:07
【问题描述】:
using 声明似乎不适用于枚举类型:
class Sample{
public:
enum Colour {RED, BLUE, GREEN};
}
using Sample::Colour;
不起作用!
我们是否需要为每个枚举类型的枚举器添加一个 using 声明?如下:
using sample::Colour::RED;
【问题讨论】:
-
有没有其他方法可以做到这一点
-
与您的问题本身并不真正相关,但我强烈建议您不要对枚举和常量使用全大写标识符。预处理器#defines 在 C/C++ 中通常是全大写的,它们会 - 处理其他同名符号。
-
在枚举上使用作用域解析运算符 :: (如 "sample::Colour::RED") 是特定于编译器的扩展,而不是标准 C++。
-
要了解更多关于 bk1e 对此非标准的说法,请参阅此堆栈溢出问题:Scope resolution operator on enums a compiler-specific extension?
-
@Jonathan Gawrych:链接的问题来自 09 年,那里的答案在 18 年不再适用。
标签: c++ enums using-declaration