C 過載限制

2021-08-08 13:37:38 字數 522 閱讀 7519

1. 過載的運算子必須至少有乙個運算元是使用者定義的型別。

2. 不能違反運算子原來的使用規則,例如,不能將求模運算子過載為只使用乙個引數。

3. 不能修改運算子的優先順序

4. 不能建立新的運算子,例如不能定義operator**()

5. 不能過載以下運算子

sizeof			//sizeof運算子

. //成員運算子

.* //成員指標運算子

:: //作用域解析運算子

?: //條件運算子

typeid //rtti

const_cast //強制型別轉換

dynamic_cast //強制型別轉換

reinterpret_cast //強制型別轉換

static_cast //強制型別轉換

6. 大多數運算子都可以通過成員或非成員函式進行過載,但以下運算子只能通過成員函式過載

過載的限制

運算子函式的格式如下 operatorop argument list 多數c 運算子都可以通過這樣的方式進行過載。但是還存在著一些限制。過載後的運算子必須至少有乙個運算元是使用者自定義的型別,這將防止使用者為標準型別過載運算子。使用運算子時不能違反運算原來的句法規則。不能創造新的運算子。不能過載下...

過載操作符的限制

與c一樣,c 使用布林表示式短路求值法 short circuit evaluation 這表示一旦確定了布林表示式的真假值,即使還有部分表示式沒有被測試,布林表示式也停止運算。例如 char p if p 0 strlen p 10 不用擔心當p為空時strlen無法正確執行,因為如果p不等於0的...

運算子過載的限制

運算子過載是一種形式的c 多型,其隱藏了運算內部的機理,並強調了實質,這是oop的乙個目標。過載的運算子是左結合的,左運算元為呼叫物件,一般格式如下 返回型別說明符 operator 運算子符號 參數列 運算子過載有以下限制 1 過載後的運算子必須至少有乙個運算元是使用者定義的型別,這樣就防止了過載...