C++-枚举型变量可以自加操作吗?

发布于 2017-05-05 04:43:40 字数 609 浏览 1444 评论 2

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清晨说ぺ晚安 2017-06-23 02:38:30

c++11已经可以color++

晚风撩人 2017-05-10 00:13:15

枚举常量值并不是普通整形数,不能进行运算,至于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;
}
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文