——運算子多載將多載的概念擴展到運算子上,允許賦予C++運算子多種含義,C++允許將運算子擴展到用戶自定義的型別(如:類物件的相加)
使用運算子函式:
returntype operator op ( argument-list );
- 例如classtype operator *(int a)、classtype operator +(classtype &ct)
- op必須是有效的C++運算子
- 不要回傳指向區域變數或臨時物件的參考,函式執行完畢后,區域變數和臨時物件將消失,參考將指向不存在的資料
多載限制:
- 多載后的運算子必須至少有一個運算元是用戶定義的型別,這樣防止用戶為標準型別多載運算子
- 使用運算子時不能違反運算子原來的句法規則(如一元運算子和二元運算子等的引數數目不能變,引數位置固定),不能修改運算子的優先級
- 不能創建新運算子、遵循“明智”的限制(如不把*多載成交換物件的資料成員)
- 不能多載以下運算子
- sizeof
- .
- . *
- ::
- ?:
- typeid
- const_cast
- dynamic_cast
- reinterpret_cast
- static_cast
- 大多數運算子都可以通過成員或非成員函式進行多載,但下面的運算子只能通過成員函式進行多載:
-
- = 賦值運算子
- () 函式呼叫運算子
- [] 下標運算子
- -> 通過指標訪問類成員的運算子
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/13746.html
標籤:C++
上一篇:QT5 決議JSON檔案
下一篇:C++ 友元函式
