C++-枚举型变量可以自加操作吗?
C++枚举型循环变量color,它的值是枚举型常量,能够进行自加操作吗?书上为什么写自加表示按顺序变化?程序如下
main( )
{ enum colorname{red,yellow,blue,white,black};
enum colorname color;
for(color=red;color<black;color++)
switch(color)
{case red:printf(“red”);break;
case yellow:printf(“yellow”);break;
case blue:printf(“blue”);break;
case white:printf(“white”);break;
case black:printf(“black”);break;
}
}
但是在VS里运行失败,显示二进制“++”:“main::colorname”不定义该运算符或到预定义运算符可接收的类型的转换。请问怎么解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
c++11已经可以color++
枚举常量值并不是普通整形数,不能进行运算,至于enum内部的存储结构,比较复杂,建议你找一些专业点的书籍查看。
enum colorname
{
red = 1,
yellow = 2,
blue = 3,
white = 4,
black = 5
};
for循环里面用整型数 i 进行循环,然后强转一下,大概是这样
for(int i = 1;i <= 5;i++)
{
enum colorname color = colorname(i);
switch(color)
{case red:printf(“red”);break;
case yellow:printf(“yellow”);break;
case blue:printf(“blue”);break;
case white:printf(“white”);break;
case black:printf(“black”);break;
}
}