C++可以通过强制类型转换给枚举变量赋值
#include<iostream>usingnamespacestd;enumweekday{sun=1,mon=2,tue=3,wed=4,thu=5,fri=6,s...
#include <iostream>
using namespace std;
enum weekday
{
sun = 1,
mon = 2,
tue = 3,
wed = 4,
thu = 5,
fri = 6,
sat = 7
};
void main(void)
{
weekday day1;
day1 = weekday(11);
cout << day1 << endl;
cin.get();
}
枚举变量的取值被限定在一个有限的范围内,
C++可以通过强制类型转换给枚举变量赋值,
这不就违背了枚举的本意了吗?
通过强制类型转换赋值多少都可以,这枚举变量和普通变量还有什么区别?
新手,刚学C++不理解为什么通过强制类型转换给枚举变量赋值,超出了它的取值范围,为什么程序还正确? 展开
using namespace std;
enum weekday
{
sun = 1,
mon = 2,
tue = 3,
wed = 4,
thu = 5,
fri = 6,
sat = 7
};
void main(void)
{
weekday day1;
day1 = weekday(11);
cout << day1 << endl;
cin.get();
}
枚举变量的取值被限定在一个有限的范围内,
C++可以通过强制类型转换给枚举变量赋值,
这不就违背了枚举的本意了吗?
通过强制类型转换赋值多少都可以,这枚举变量和普通变量还有什么区别?
新手,刚学C++不理解为什么通过强制类型转换给枚举变量赋值,超出了它的取值范围,为什么程序还正确? 展开
展开全部
7 二进制 111
11 二进制 1011
day1=weekday(11);
这是取后三位011;
强制类型转换是把多余部分舍去了,若有不足则补0,这句是重点,上面是我猜的。
11 二进制 1011
day1=weekday(11);
这是取后三位011;
强制类型转换是把多余部分舍去了,若有不足则补0,这句是重点,上面是我猜的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你写的是老老式用法,可以作为右值被隐性强制转换成int or char。
至于(11)超了,这个代码你写的是什么啊,没看懂。。。。。
至于(11)超了,这个代码你写的是什么啊,没看懂。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有书啊!!!好好看看就可以了!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询