首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 學習筆記(七):運算符重載完全指南

     編輯:關於C++

運算符重載:賦予用戶類型原生運算符語義

C++ 內置運算符僅支持基本類型,運算符重載通過函數重載機制,讓自定義類型(如類)也能使用 +、-、== 等運算符,提升代碼可讀性。

本質:運算符函數

每個運算符對應一個運算符函數,編譯期將表達式轉換為函數調用。例:a + b → operator+(a, b)。

兩種重載形式

1. 作為類成員函數

返回類型 類名::operator@(參數列表) {
    // @ 為運算符符號
}
  • 隱含 this 指針,參數個數比運算元少一個(右運算元)。
  • 適用於單目運算符、=、()、[]、->(必須為成員)。

2. 作為友元函數

friend 返回類型 operator@(參數列表);
  • 參數個數與運算元個數相同。
  • 適用於雙目運算符(如 +、-、<<、>>),保持對稱性。
  • =、()、[]、-> 不能 為友元。

重載限制

  • 不可重載:.、.*、::、?:。
  • 不改變運算符優先級、結合性、語法形式、操作數個數。

最佳實踐建議

  • 單目運算符優先作成員函數。
  • 雙目運算符優先作友元函數(特別是流插入/提取 <</>>)。
  • 返回類型通常為 const 引用或值,避免 (a+b)=c 等誤用。

相關文章


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved