"| ="操作在C++中意味着什么?

Ree*_*eem 12 c++ java operators ternary-operator compound-assignment

我有以下代码,我无法理解它是什么意思:

var1 |= var2>0 ? 1 : 2;
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我!

pol*_*nts 21

if (var2 > 0)
  var1 = var1 | 1;
else 
  var1 = var1 | 2;
Run Code Online (Sandbox Code Playgroud)

这是按位 - 或.


Ric*_*ard 12

所有a op= b操作员都是快捷方式a = a op b.

但是,由于C++允许opop=单独覆盖,因此您依赖于每个自定义类型的实现者是一致的.


N 1*_*1.1 6

cond ? x : yx如果cond为true y则返回,否则返回.阅读三元运算符

a |= ba = a | b是分配a | b给它的简写a

a | b按位或ab.(例如2 | 3 = 3和1 | 2 = 3)