C 程式語言 第十一章 運算子過載

2021-06-01 08:42:09 字數 835 閱讀 5111

1、運算子函式

運算子函式的名字是由關鍵字operator後跟對應的運算子構成。

二元運算子可以定義為取乙個引數的非靜態成員函式,也可以定義為去兩個引數的非成員函式。

乙個運算子函式必須或者是乙個成員函式,或者至少有乙個使用者定義型別的引數。

不存在運算子遮蔽,這就保證了內部運算子可以用,並且為運算子定義新的意義時,不用修改原有的類的宣告。

複製建構函式採用的引用引數。被用在初始化變數,引數傳遞和值返回。

2、建構函式不能刻畫:

從使用者定義型別到內部型別的轉換,因為內部型別不是類

從新型別到某個已有型別的轉換,而不去修改那個已有類的宣告。

3、友元

成員函式只能通過類物件訪問,隱式轉換不會被用於非const的引用引數。

某個運算的所有運算物件都允許隱式型別轉換,採用const引用引數或非引用引數,可以選擇友元函式。

4、基本運算子

賦值和初始化是不同的操作。

通過將建構函式宣告為explicit(顯示)的方式就可以抑制隱式轉換。

5、下標【】

函式operator[ ]可以用於為類的物件定義下標運算的意義。

6、函式呼叫

記法形式expression(expression-list),是一種二元運算,其中expression作為左運算物件,而expression-list作為右運算物件。

operator()中()的引數列表將被求值。必須作為成員函式。

7、間接

間接運算子->可以被定義為乙個一元的運算子。

可以在通過類物件間接訪問類成員的物件。

可以看成是c++裡提供的一種受限的,但也非常重要的委託機制。

第十一章運算子過載

1 運算子過載 include using namespace std class num num int get const void set int x private int n int main num int get const void set int x void add privat...

(一二二)運算子過載 第十一章

本章重點是類設計技術,而不是通用原理。c 的重點是 多使用。運算子過載是一種形式的c 多型 就像函式過載那樣,同名但呼叫不同的函式 要過載運算子,需要使用被稱為運算子函式的特殊函式形式。運算子函式格式如下 operator 運算子 argument list 例如 operator 表示過載加號運算...

第十一周 實現類中的運算子過載

檔名稱 text.cpp 完成日期 2015年5月16日 版本號 v1.0 問題描述 請用類的成員函式定義複數類過載運算子 使之能用於複數的加減乘除 輸入描述 無 程式輸出 複數類加減乘除之後的結果 include using namespace std class complex complex ...