enum类型并没有定义一个名称空间啊解决思路
enum类型并没有定义一个名称空间啊我原本以为enum应该定义了一个类型,里面的数值是有类型的,并且只能通过
enum类型并没有定义一个名称空间啊
我原本以为enum应该定义了一个类型,里面的数值是有类型的,并且只能通过名称空间来访问。
但是下面的代码在VC10运行是没有问题的:
C/C++ codeenum weekday{monday,tuesday};int main(int argc, char* const argv[]){ int i=monday; return 0;}
weekday算不算一个名称空间? 我的main函数为什么能直接访问weekday当中定义的那些数值而不需要weekday::monday.
这个C++标准有规定么?
[解决办法]本来就不是, enum是int型的常量
你也不能通过::来访问
[解决办法]C++标准规定枚举不构成名称,而且枚举类型自成一种类型,可以被提升为int,但不存在从int到枚举类型的隐式转换。
[解决办法]C++标准规定枚举不构成名称空间
[解决办法]enum是暴漏出来的,这个要铭记。
[解决办法]enum是常量的一种