进行枚举之间加法运算时,直接输出结果正常,但赋值后进行输出报错。
示例如下:
typedef enum _eNo{
NONE = 0,
ONE = 1,
TWO = 2,
THREE = 3
}NO;
NO no1, no2;
no1 = ONE;
no2 = TWO;
// NO no3 = no1 + no2;
qDebug().noquote() << no1 + no2;
输出结果:
以上运算后进行输出,正常
接下来,进行赋值后输出。
NO no1, no2;
no1 = ONE;
no2 = TWO;
NO no3 = no1 + no2;
qDebug().noquote() << no3;
会报错:
根据错误信息可以得出:
int 转 No 是无效转换。
所以,需要手动进行转换,代码如下:
NO no1, no2;
no1 = ONE;
no2 = TWO;
NO no3 = NO(no1 + no2);
qDebug().noquote() << no3;
再次输出:
有时候记忆这东西真的很难捉摸,偶尔会想起一些仅仅见过几面甚至擦肩而过的人,却想不起初中里坐最后一排的人是什么模样。别把生活想的太难,感恩自己还活在这人世间。生活没有答案,生活不需要答案
。