運算子函式的格式如下:
operatorop(argument-list)
多數c++運算子都可以通過這樣的方式進行過載。但是還存在著一些限制。
過載後的運算子必須至少有乙個運算元是使用者自定義的型別,這將防止使用者為標準型別過載運算子。
使用運算子時不能違反運算原來的句法規則。
不能創造新的運算子。
不能過載下面的這些運算子。
sizeof
sizeof運算子
.:成員運算子
.*
成員指標運算子
::作用域解析運算子
?:條件運算子
typeid乙個rtti運算子
const_cast強制型別轉換運算子
dynamic_cast強制型別轉換運算子
reinterpret_cast強制型別轉換運算子
static_cast強制型別轉換運算子
大多數運算子都可以通過成員或非成員函式進行過載,但這些運算子只能通過成員函式進行過載: =
賦值運算子
()函式呼叫運算子
下標運算子
->通過指標訪問類成員的運算子
C 過載限制
1.過載的運算子必須至少有乙個運算元是使用者定義的型別。2.不能違反運算子原來的使用規則,例如,不能將求模運算子過載為只使用乙個引數。3.不能修改運算子的優先順序 4.不能建立新的運算子,例如不能定義operator 5.不能過載以下運算子 sizeof sizeof運算子 成員運算子 成員指標運算...
過載操作符的限制
與c一樣,c 使用布林表示式短路求值法 short circuit evaluation 這表示一旦確定了布林表示式的真假值,即使還有部分表示式沒有被測試,布林表示式也停止運算。例如 char p if p 0 strlen p 10 不用擔心當p為空時strlen無法正確執行,因為如果p不等於0的...
運算子過載的限制
運算子過載是一種形式的c 多型,其隱藏了運算內部的機理,並強調了實質,這是oop的乙個目標。過載的運算子是左結合的,左運算元為呼叫物件,一般格式如下 返回型別說明符 operator 運算子符號 參數列 運算子過載有以下限制 1 過載後的運算子必須至少有乙個運算元是使用者定義的型別,這樣就防止了過載...