【发布时间】:2014-10-30 18:41:25
【问题描述】:
在下面的代码片段中,为什么内部类CheckForA 方法中的'A' 不必是限定ID(即return myE == Outer::A)?是因为 E 和 Inner 都在同一个范围内吗?类作用域是否像命名空间作用域一样工作?
class Outer
{
public:
enum E{ A, B, C };
class Inner
{
public:
void Set( E e_ ) { myE = e_; }
bool CheckForA() const { return myE == A; }
E myE;
};
void Set( E e_ ) { myInner.Set(e_); }
bool CheckForA() const { return myInner.CheckForA(); };
Inner myInner;
};
int main()
{
Outer outer;
outer.Set(Outer::A);
return (int)outer.CheckForA();
}
【问题讨论】:
标签: c++ enums scope inner-classes