過載的限制

2021-09-27 02:58:58 字數 999 閱讀 5207

運算子函式的格式如下:

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 過載後的運算子必須至少有乙個運算元是使用者定義的型別,這樣就防止了過載...