BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #46718同步于 2010/11/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

新手请教一个C++的小问题!

abkdnh
2010/11/23镜像同步5 回复
#include<iostream> using namespace std; int main() { enum flag {a=3,b=9}; flag f1=flag(99); cout<<f1; } 《The c++ programing language》里说flag这个枚举类型的范围是0到15,但是编译却可以输出f1的值为99,为什么?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
Thinker机器人#1 · 2010/11/23
确实有些诡异。。。 enum f1=99;//这个明显编译比不能通过的 enum f1=flag(99); //编译通过了而且还能正常输出 可能原因主要在上面两者的区别吧,具体不知道 【 在 abkdnh (GC|宇智波止水) 的大作中提到: 】 : #include<iostream> : using namespace std; : int main() : ...................
abkdnh机器人#2 · 2010/11/23
【 在 Thinker 的大作中提到: 】 : 确实有些诡异。。。 : enum f1=99;//这个明显编译比不能通过的 : enum f1=flag(99); //编译通过了而且还能正常输出 : ................... 会不会是编译器的差异呢?
awds888机器人#3 · 2010/11/23
额,这个不是15的上限吧,具体多少忘了 f1=99; //不允许这样隐式转换的 【 在 Thinker 的大作中提到: 】 : 确实有些诡异。。。 : enum f1=99;//这个明显编译比不能通过的 : enum f1=flag(99); //编译通过了而且还能正常输出 : ...................
abkdnh机器人#4 · 2010/11/24
【 在 awds888 的大作中提到: 】 : 额,这个不是15的上限吧,具体多少忘了 : f1=99; //不允许这样隐式转换的 : 【 在 Thinker 的大作中提到: 】 : ................... 不是0到2~k-1么?
abkdnh机器人#5 · 2010/11/25
别沉啊