【轉載】C++操作符
C++操作符介紹
|
優先級 |
運算符 |
含 義 |
示 例 |
結合方向 |
要求運算 對象的個數 |
可重載性 |
|
1 |
:: |
全局解析 |
::x |
自右至左 |
一元操作符 |
不可重載 |
|
:: |
類域解析 |
X::x |
自左至右 |
二元操作符 |
不可重載 |
|
|
2 |
. |
直接成員選擇運算符 |
s.len |
自左至右 |
二元操作符 |
不可重載 |
|
( ) |
圓括號 |
|
|
可重載 |
||
|
( ) |
函數調用 |
rand( ) |
||||
|
( ) |
類型構造 |
int( ch) |
||||
|
[ ] |
下標運算符 |
a[i] |
二元操作符 |
|||
|
-> |
間接成員選擇運算符 |
p->len |
二元操作符 |
|||
|
++ |
后增 |
n++ |
自右至左 |
一元操作符 |
||
|
- - |
后減 |
n- - |
一元操作符 |
|||
|
3 |
! |
邏輯非運算符 |
!p |
自右至左 |
一元操作符 |
可重載 |
|
~ |
按位取反運算符 |
~s |
||||
|
++ |
前增運算符 |
++n |
||||
|
- - |
前減運算符 |
- -n |
||||
|
- |
負號運算符 |
-n |
||||
|
* |
反引用運算符 |
*p |
||||
|
& |
求地址運算符 |
&x |
||||
|
new |
空間分配 |
new int(9) |
||||
|
delete |
空間釋放 |
delete p |
||||
|
(類型) |
類型轉換運算符 |
(int)ch |
二元操作符 |
|||
|
sizeof |
長度運算符 |
sizeof(a) |
一元操作符 |
不可重載 |
||
|
4 |
* |
乘法運算符 |
m*n |
自左至右 |
二元操作符 |
可重載 |
|
/ |
除法運算符 |
m/n |
||||
|
% |
求余運算符 |
m%n |
||||
|
5 |
+ |
加法運算符 |
m+n |
自左至右 |
二元操作符 |
可重載 |
|
- |
減法運算符 |
m-n |
||||
|
6 |
<< |
左移運算符 |
m<<n |
自左至右 |
二元操作符 |
可重載 |
|
>> |
右移運算符 |
m>>n |
||||
|
7 |
< |
小于 |
x<y |
自左至右 |
二元操作符 |
可重載 |
|
<= |
小于等于 |
x<=y |
||||
|
> |
大于 |
x>y |
||||
|
>= |
大于等于 |
x>=y |
||||
|
8 |
== |
等于運算符 |
x==y |
自左至右 |
二元操作符 |
可重載 |
|
!= |
不等于運算符 |
x!=y |
||||
|
9 |
& |
按位與運算符 |
s&t |
自左至右 |
二元操作符 |
可重載 |
|
10 |
^ |
按位異或運算符 |
s^t |
自左至右 |
二元操作符 |
可重載 |
|
11 |
| |
按位或運算符 |
s|t |
自左至右 |
二元操作符 |
可重載 |
|
12 |
&& |
邏輯與運算符 |
u&&v |
自左至右 |
二元操作符 |
可重載 |
|
13 |
|| |
邏輯或運算符 |
u||v |
自左至右 |
二元操作符 |
可重載 |
|
14 |
? : |
條件運算符 |
u? x : y |
自左至右 |
三元操作符 |
不可重載 |
|
15 |
= |
賦值運算符 |
n=22 |
自右至左 |
二元操作符 |
可重載 |
|
+= |
先加,再賦值 |
n+=8 |
||||
|
-= |
先減,再賦值 |
n-=4 |
||||
|
*= |
先乘,再賦值 |
n*= -1 |
||||
|
/= |
先除,再賦值 |
n/10 |
||||
|
%= |
先求余,再賦值 |
n%=10 |
||||
|
>>= |
先左移位,再賦值 |
n>>=1 |
||||
|
<<= |
先右移位,再賦值 |
N<<=1 |
||||
|
&= |
先按位與,再賦值 |
s&=mask |
||||
|
^= |
先按位異或,再賦值 |
s^=mask |
||||
|
|= |
先按位或,再賦值 |
s|=mask |
||||
|
16 |
, |
逗號運算符 |
++m,- -n |
自左至右 |
|
可重載 |
-
- 一元操作符可以是不帶參數的成員函數或帶一個參數的非成員函數。
- 二元操作符可以是帶一個參數的成員函數或帶兩個參數的非成員函數。
- operator=、operator[]、operator()、operator->只能定義為成員函數。
- operator->的返回值必須是一個指針或能使用->的對象。
- 重載 operator++ 和 operator--時帶一個 int 參數表示后綴,不帶參數表示前綴。
- 除 operator new 和 operator delete 外,重載的操作符參數中至少要有一個非內建數據類型。
- 重載的的操作符應盡量模擬操作符對內建類型的行為。
原文地址 http://www.rzrgm.cn/mrye/archive/2012/09/05/2671736.html

浙公網安備 33010602011771號