C 快速入門筆記(三)

2021-09-27 11:22:20 字數 997 閱讀 4458

4運算子過載

4.1對乙個運算子過載本質上就是編寫函式,只不過這個函式的名稱必須以operator關鍵字開始,然後跟隨被過載運算子。也就是說,我們需要編寫的函式原型(運算子過載函式)必須符合如下的規則:

函式返回值型別 operator 被過載的運算子(函式引數列表)

另外要注意以下幾點:

(1)只能過載c++中原先已有定義的運算子。比如,c++中的 」**「 這個運算子就不能過載

(2)」.「  ".*"  "::"  "?:"  和 sizeof 這5個運算子不允許被過載。除這5個運算子除外,其他已有定義的c++運算子都可以被過載。

(3)不能改變運算子的運算元個數,比如,對於彈幕運算子,它只能有乙個運算元。

(4)不能改變運算子原有的優先順序。

(5)不能改變運算子原有的結合性。

(6)不能改變運算子對c++內部那些預定義資料型別的操作方式。

4.2型別轉換函式

用建構函式實現型別轉換

為了用建構函式來實現型別轉換,類內至少必須定義乙個只帶乙個引數的建構函式,該建構函式將引數型別轉換為該類的型別。當需要轉換時,系統會自動呼叫該建構函式,建立該類的乙個臨時物件,該物件由被轉化的初始化,從而實現轉換。

型別轉換函式

源類::operator  目標類()

例如,要實現將乙個複數類轉為double型別,且這個double型別的資料等於複數的模,那麼可以向前面的複數類中新增如下的轉化函式。

ccomplex::operator();

在ccomplex.cpp檔案中新增如下的實現**:

ccomplex::operator double();

5.2派生類設計

包括派生類成員的定義與使用

派生類建構函式的設計

派生類析構函式的設計

5.3程式的擴充套件

分為單一繼承與多重繼承

C 快速入門筆記(四)

6.虛函式與多型性 物件導向程式設計的第三大特徵就是多型性。多型性一般指同一事物有多種形態。因此,可以認為函式過載和運算子過載是多型性的最簡單形式。6.1派生類與基本類的轉換 在繼承的關係下,c 允許派生類物件可以直接轉化為public基本類物件。事實上,不是只有派生類物件可以直接轉換為public...

TinyXml快速入門(三)

在 tinyxml 快速入門 二 介紹使用tinyxml庫獲取xml檔案宣告,查詢指定節點 刪除指定節點的做法。在本文中繼續介紹修改指定節點和增加節點的做法。修改節點其實和查詢指定節點的值有點類似,也分為兩個函式,乙個實現修改文字。另乙個負責修改屬性。對於modifynode attribute函式...

C 快速入門

1.1 呼叫 gnu編譯器的預設命令是 g g prog.cc o prog unix 的 shell視窗 cc prog.cc 標準的輸入與輸出物件 處理輸入時使用的命令 cin cin為 istream型別物件 處理輸出時使用的命令 cout cout為 ostream型別物件 標準庫的另外兩個...