引用类成员变量时使用!(非)运算符出现变量名变更问题如何解决
问题解决方案
你的写法不符合C++语法规则,!作为一元运算符不能插入在成员访问符.和成员名之间,你遇到的变量名识别异常就是编译器无法解析非法的.!device语法导致的。
正确写法
根据你的使用场景选择对应实现:
- 要对
device成员的get()方法返回值取非,调整!运算符位置到表达式最前端即可:
HapticsDevice haptic_device; if (!haptic_device.device.get()) return;
- 如果仅需要判断
device成员本身的布尔值/指针是否为空,写法如下:
HapticsDevice haptic_device; if (!haptic_device.device) return;
补充说明:一元运算符的优先级高于成员访问运算符,因此只要将
!放在需要取非的完整变量/表达式前即可正常生效,不需要嵌入到成员访问的语法结构中。
内容的提问来源于stack exchange,提问作者B_M
相关产品推荐
相关产品推荐

