運算子過載的注意事項

2022-07-09 09:09:09 字數 539 閱讀 6600

在 c++ 中進行運算子過載時的注意事項:

c++ 規定,運算子過載不改變運算子的優先順序。

以下運算子不能被過載:".",".*","::","?:",sizeof 。

過載運算子 "()"、""、"->"、賦值運算子 "="和型別強制轉換運算子 時,只能將它們過載為成員函式,不能過載為全域性函式。

必要時需要過載賦值運算子 "=" ,即進行深拷貝,以避免兩個物件內部的指標指向同一片儲存空間。

型別的名字可以作為強制型別轉換運算子,也可以被過載為類的成員函式。它能使得物件被自動轉換為某種型別。

過載運算子時,應該盡量保留運算子原本的用法和特性。例如過載 "+" 運算子,完成的功能就應該類似於做加法,如果在其中做減法就是不合適的;再例如,賦值運算子 "=" ,它是可以連用的,這個特性在過載後也應該保持,所以 operator= 函式一般需要返回其所作用物件的引用,以保持 "=" 連用的這個特性。

C 運算子過載的注意事項

1 過載操作符沒必要一定是成員函式,還可以是友元函式。2 過載操作符函式為成員函式主要是你需要操作類內部的成員,必須是成員函式或友元函式才行。3 至於由深淺拷貝的原因要使其成為成員函式,這個不知道。4 如果運算子被過載為全域性函式,那麼只有乙個引數的運算子叫做一元運算子,有兩個引數的運算子叫做二元運...

過載運算子的形式和注意事項

運算子過載 函式過載 是c 多型的重要實現手段之一。通過運算子過載對運算子功能進行特殊定製,使其支援特定型別物件的運算,執行特定的功能,增強c 的擴充套件功能。1 不可臆造運算子。2 運算子原有運算元的個數 優先順序和結合性不能改變。3 運算元中至少乙個是自定義型別。4 保持過載運算子的自然含義。一...

C 中的運算子過載概念與注意事項

所謂運算子過載,就是讓運算子有特殊的含義。傳統的運算子包括但不限於以下幾種 1算術運算子 2邏輯運算子 3關係運算子 4賦值運算子 注意沒有 5位運算子 6雜項運算子 包括取位址符號 解引用符號 三目運算子?sizeof 取變數大小操作符 運算子過載的本質,也是一種函式,區別是這種函式定義時候需要使...