在c++中创建新类型时出错
Error in creating a new type in 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);
相关文章:
- 访问者访问变体并返回不同类型时出错
- 与 tesseract::TessBaseApi() 相关的 Tesseract-OCR 出错(预期的类型说明符)
- 将类指针类型转换为键时出错
- 在 Rcpp 中的字符串类型之间转换时出错
- 为什么双精度数据类型在C++中出错?
- GLUT 问题:重新声明 c++ 内置类型'wchar_t'时出错
- 将运算符<<与隐式转换的非基本数据类型一起使用时出错
- 缺少类型说明符 - int 假定 声明静态成员后出错
- 确定输入"conscalc: calc"的类型时出错。不能联合编码器。具有不同字段集的结构类型
- 使用 mex 编译库时出错 - __int 64 未命名类型
- 为什么当我们把变量"u"的数据类型从长整型更改为整型时,模幂会出错?
- 在给定表达式的情况下返回对类型的引用时出错:“cond ?*这个 : 投掷()'
- 使用类作为向量类型时出错 - "Undeclared identifier"
- 为 freebsd 11 编译 gcc4.8.5 时出错: 错误: 未知类型名称 'choke'
- 传递具有依赖嵌套参数类型的模板模板参数时出错
- 运算符重载时出错(错误:"运算符<<不匹配(操作数类型为"std::basic_ostream<char>"和"const char [2]")
- 推导成员函数包装器的返回类型时出错
- c++中的字符串库出错:libc++abi.dylib:终止,类型为std::out_of_range:basic_st
- 删除时出错:表达式必须是指向完整对象类型的指针
- 条件表达式解析新表达式中详细阐述的类型说明符时出错