C++枚举位置混乱
C++ enum placement confusion
我正试图在C++中使用枚举
现在,当我将枚举放置在枚举的声明之上时,它就工作了。但是,如果我首先声明枚举类型,我会得到错误"‘状态’没有命名类型"。
作品
enum states
{
DEMO, STATE1, STATE2
};
states currentState;
不起作用
states currentState;
enum states
{
DEMO, STATE1, STATE2
};
错误
error: 'states' does not name a type :states currentState
我最近才开始编写Arduino,在C#或Java中从未遇到过这个问题。
在使用标识符之前,必须使用正向声明。如果必须知道大小或功能(例如类函数),则需要完整的定义。
enum states; //forward declaration.
states currentState; // OK
//some other code
void foo(states currentState); //OK
enum states
{
DEMO, STATE1, STATE2
};
作为注释中的状态,如果没有以前在c++中的声明,就不能使用name。
enum
不能正向声明,但enum class
可以(在C++11中引入)。
所以你可以这样做:
enum class states /* : int */ ; // forward declaration
states currentState;
enum class states /* : int */
{
DEMO, STATE1, STATE2
};
注意,因为enum class
不同于没有显式转换为int
的简单enum
。
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何克服提升精神AST混乱
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置
- 如何选择在 csv 文件中输出的位置
- Windows SDK 8:关于安装位置,文件夹命名法和Windowssdkdir_old Env变量的混乱
- Cocos 2dx 人像模式对象位置混乱
- C++枚举位置混乱