引用 enum 中枚举常量的问题
#include <iostream>
using namespace std ;
class A
{
public:
enum B{ X, Y } ; // 这里无法再类外引用
public:
A(){}
~A(){}
public:
B m_data ; // 为了方便说明, 就 public 了
} ;
int main(int argc, char* argv[])
{
A a ;
a.m_data = A::B::X ; // 这里有错误, 为什么限定符中不能使用枚举?return 0;
}
当引用类型内的枚举时,无需指定枚举的名称。
文件范围的枚举定义相当于常量,也不需要限定名。
文件范围的枚举定义相当于常量,也不需要限定名。
int main(int argc, char* argv[])
{
A a ;
a.m_data = A::X ; // 正确, 由于枚举的一对大括号不构成作用域,// 所以类中的枚举常量的访问方式与静态成员等相同,直接加类名限定就行了
return 0;
}