gpt4 book ai didi

c++ - 错误: invalid conversion from ‘int’ to enum c++

转载 作者:行者123 更新时间:2023-12-01 17:35:57 25 4
gpt4 key购买 nike

当我用 C++ 编译以下示例代码时,出现“错误:从‘int’到‘num’的转换无效”。使用枚举名称对其进行类型转换没有帮助。

#include <iostream>
using namespace std;
typedef enum
{
NUM_ZERO = 0,
NUM_ONE = 1,
NUM_TWO = 2,
NUM_THREE = 4
} num;

int main()
{
num* numFlag;
*numFlag |= static_cast<num>(NUM_TWO);
return 0;
}

如果有人知道如何解决此问题,请告诉我。

最佳答案

从语法上来说,

*numFlag |= static_cast<num>(NUM_TWO);

相当于

*numFlag = (*numFlag | static_cast<num>(NUM_TWO));

这解释了编译器警告/错误。您需要转换 | 运算符的结果。

*numFlag = static_cast<num>(*numFlag | NUM_TWO);
<小时/>

要使其正常工作,您应该使用

int main()
{
// Make numFlag an object instead of a pointer.
// Initialize it.
num numFlag = NUM_ZERO;

// Perform the bitwise |
numFlag = static_cast<num>(numFlag | NUM_TWO);

return 0;
}

关于c++ - 错误: invalid conversion from ‘int’ to enum c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60307828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com