【发布时间】:2011-09-12 00:09:52
【问题描述】:
我非常了解 C++ 'using' 声明和指令的工作原理。但是,我对此感到困惑......也许这是不可能的?我想避免质量我的枚举变量:
namespace Foo {
class MyClass {
public:
enum MyEnum { X, Y, Z };
}
}
现在,在该命名空间之外,我希望能够执行以下操作:
using Foo::MyClass.MyEnum;
MyEnum letter = MyEnum::x;
但显然这不是这样做的方法吗?我打赌这是可能的,但我的符号是错误的......我也尝试使用 Foo::MyClass::MyEnum,但编译器认为 Foo::MyClass 是一个命名空间。
补充:如您所见,必须完全声明所有内容会变得很烦人...
Foo::MyClass::MyEnum value = Foo::MyClass::X;
【问题讨论】:
-
您尝试将
using放在哪里?在课堂内,还是? -
using declaration with enum? 的可能重复项
-
@Kiril,在一个不在 Foo 命名空间中的不同类中的方法内部。
标签: c++ namespaces