运算符 描述 例子 可重载性
1      
:: 作用域解析符 Class::age = 2; 不可重载
2      
() 函数调用 isdigit('1') 可重载
() 成员初始化 c_tor(int x, int y) : _x(x), _y(y*10){}; 可重载
[] 数组数据获取 array[4] = 2; 可重载
-> 指针型成员调用 ptr->age = 34; 可重载
. 对象型成员调用 obj.age = 34; 不可重载
++ 后自增运算符 for( int i = 0; i < 10; i++ ) cout << i; 可重载
-- 后自减运算符 for( int i = 10; i > 0; i-- ) cout << i; 可重载
const_cast 特殊属性转换 const_cast<type_to>(type_from); 不可重载
dynamic_cast 特殊属性转换 dynamic_cast<type_to>(type_from); 不可重载
static_cast 特殊属性转换 static_cast<type_to>(type_from); 不可重载
reinterpret_cast 特殊属性转换 reinterpret_cast<type_to>(type_from); 不可重载
typeid 对象类型符 cout << typeid(var).name(); 不可重载
cout << typeid(type).name();
3(具有右结合性)      
! 逻辑取反 if( !done ) … 可重载
not ! 的另一种表达    
~ 按位取反 flags = ~flags; 可重载
compl ~的另一种表达    
++ 预自增运算符 for( i = 0; i < 10; ++i ) cout << i; 可重载
-- 预自减运算符 for( i = 10; i > 0; --i ) cout << i; 可重载
- 负号 int i = -1; 可重载
+ 正号 int i = +1; 可重载
* 指针取值 int data = *intPtr; 可重载
& 值取指针 int *intPtr = &data; 可重载
new 动态元素内存分配 long *pVar = new long; 可重载
MyClass *ptr = new MyClass(args);
new [] 动态数组内存分配 long *array = new long[n]; 可重载
delete 动态析构元素内存 delete pVar; 可重载
delete [] 动态析构数组内存 delete [] array; 可重载
(type) 强制类型转换 int i = (int) floatNum; 可重载
sizeof 返回类型内存 int size = sizeof floatNum; 不可重载
int size = sizeof(float);
4      
->* 类指针成员引用 ptr->*var = 24; 可重载
.* 类对象成员引用 obj.*var = 24; 不可重载
5      
* 乘法 int i = 2 * 4; 可重载
/ 除法 float f = 10.0 / 3.0; 可重载
% 取余数(模运算) int rem = 4 % 3; 可重载
6      
+ 加法 int i = 2 + 3; 可重载
- 减法 int i = 5 - 1; 可重载
7      
<< 位左移 int flags = 33 << 1; 可重载
>> 位右移 int flags = 33 >> 1; 可重载
8      
< 小于 if( i < 42 ) … 可重载
<= 小于等于 if( i <= 42 ) ... 可重载
> 大于 if( i > 42 ) … 可重载
>= 大于等于 if( i >= 42 ) ... 可重载
9      
== 恒等于 if( i == 42 ) ... 可重载
eq == 的另一种表达    
!= 不等于 if( i != 42 ) … 可重载
not_eq !=的另一种表达    
10      
& 位且运算 flags = flags & 42; 可重载
bitand &的另一种表达    
11      
^ 位异或运算 flags = flags ^ 42; 可重载
xor ^的另一种表达    
12      
| 位或运算 flags = flags | 42; 可重载
bitor |的另一种表达    
13      
&& 逻辑且运算 if( conditionA && conditionB ) … 可重载
and &&的另一种表达    
14      
|| 逻辑或运算 if( conditionA || conditionB ) ... 可重载
or ||的另一种表达    
15(具有右结合性)      
? : 条件运算符 int i = (a > b) ? a : b; 不可重载
16(具有右结合性)      
= 赋值 int a = b; 可重载
+= 加赋值运算 a += 3; 可重载
-= 减赋值运算 b -= 4; 可重载
*= 乘赋值运算 a *= 5; 可重载
/= 除赋值运算 a /= 2; 可重载
%= 模赋值运算 a %= 3; 可重载
&= 位且赋值运算 flags &= new_flags; 可重载
and_eq &= 的另一种表达    
^= 位异或赋值运算 flags ^= new_flags; 可重载
xor_eq ^=的另一种表达    
|= 位或赋值运算 flags |= new_flags; 可重载
or_eq |=的另一种表达    
<<= 位左移赋值运算 flags <<= 2; 可重载
>>= 位右移赋值运算 flags >>= 2; 可重载
17      
throw 异常抛出 throw EClass(“Message”); 不可重载
18      
, 逗号分隔符 for( i = 0, j = 0; i < 10; i++, j++ ) … 可重载