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型別物件 標準庫的另外兩個...