二元运算符
下表显示可重载的运算符的列表。
可重新定义的二进制运算符
运算符 |
名称 |
---|---|
, |
逗号 |
!= |
不相等 |
% |
取模 |
%= |
取模/赋值 |
& |
按位“与” |
&& |
逻辑“与” |
&= |
按位“与”/赋值 |
* |
乘法 |
*= |
乘法/赋值 |
+ |
添加 |
+= |
加法/赋值 |
– |
减法 |
–= |
减法/赋值 |
–> |
成员选择 |
–>* |
指向成员的指针选定内容 |
/ |
除法 |
/= |
除法/赋值 |
< |
小于 |
<< |
左移 |
<<= |
左移/赋值 |
<= |
小于或等于 |
= |
赋值 |
== |
相等 |
> |
大于 |
>= |
大于或等于 |
>> |
右移 |
>>= |
右移/赋值 |
^ |
异或 |
^= |
异或/赋值 |
| |
按位“与或” |
|= |
按位“与或”/赋值 |
|| |
逻辑“或” |
若要将二元运算符函数声明为非静态成员,您必须用以下形式声明它:
ret-type operatorop**(** arg )
其中,ret-type 是返回类型,op 是上表中列出的运算符之一,而 arg 是任何类型的参数。
若要将二元运算符函数声明为全局函数,您必须用以下形式声明它:
ret-type operatorop**(** arg1**,** arg2 )
其中,ret-type 和 op 是成员运算符函数,而 arg1 和 arg2 是参数。 至少有一个参数必须是类类型。
备注
对二元运算符的返回类型没有限制;但是,大多数用户定义的二元运算符将返回类类型或对类类型的引用。