在c++中创建新类型时出错



我刚开始学习c++,在这个简单的代码中我有以下问题:

enum class color_type {green,red,black};
color_type color(color_type::red);

我得到错误"color_type不是一个类或命名空间"。我的目标是创建一个color_type类型的变量,它只能接受红色、黑色和绿色的值。你能帮帮我吗?谢谢你

你的代码看起来像有效的c++11对我来说。

如果你的编译器不支持c++11,那么你可以模拟一个带有命名空间或结构的枚举类,如

 struct colour_type
 {
      enum value
      {
            red, 
            green,
            blue
      }
 }
 //usage is like so
 colour_type::value myColour = colour_type::red;

它不是完美的,但它保持枚举在自己的作用域中

似乎你的编译器不支持无作用域枚举器的限定名称(我的意思是你的帖子之前的版本,当有显示一个无作用域枚举)。简单写

enum color_type {green,red,back};
color_type color(red);

或者可以使用限定范围的枚举,例如

enum class color_type {green,red,back};
color_type color(color_type::red);

实际上这些声明

enum color_type {green,red,back};
color_type color(color_type::red);

相关内容

  • 没有找到相关文章

最新更新