C 的探索路5 類的基礎拓展與this指標

2021-08-11 05:43:55 字數 1596 閱讀 4602

過去的四章內容由於考試,導致進度偏慢,書中內容還剩下運算子過載、繼承與派生、多型與虛函式、i/o流、檔案的操作以及泛型程式設計與stl六個部分,爭取乙個禮拜能夠完成一章的學習與總結練習,能在2023年到來之前將c++的基礎概念性東西打紮實基礎;方便後續學習。

常量的目的就是不允許外界修改。如果希望某個物件在初始化之後就不再改變,則可以定義常量物件。常量物件的寫法為:const 類名 物件;既然不希望被改變,那麼呼叫的函式也只能帶const。常量成員函式的作用就是為常量成員所呼叫。常量成員函式的定義形式為:函式名(參數列)const注意const寫在參數列的後部。

乙個小小的例子說明下常量物件與常量成員函式的使用

#includeusing namespace std;

class ctyre

};class cengine ;

class ccar ;

ccar::ccar(int p, int tr, int tw) :price(p), tyre(tr, tw) ;

int main()

該段程式包含三個類:汽車類ccar,輪胎類ctyre以及引擎類cengine,ctyre類初始化時,通過初始化列表ctyre(int r,int w):radius(r),width(w)進行。而汽車類ccar內部包含輪胎類及引擎類兩個子類。類似於普通構造,則該函式構造如上述程式所示。

#includeusing namespace std;

class ctyre

~ctyre()

};class cengine

~cengine()

};class ccar ;

ccar::ccar(int p, int tr, int tw) :price(p), tyre(tr, tw) ;

ccar::~ccar()

int main()

在施行函式構造時,先執行所有成員物件的建構函式,最後實現封閉類的建構函式。其原因是:只有明確每個呼叫的內部成員的物件是什麼樣的時候,才能知道這個封閉類長什麼樣。而析構時恰好相反:先執行封閉類的析構函式,再執行成員物件的析構函式。就和剝洋蔥一樣,先得把外面的殼給剝掉,才能剝掉裡面的。簡而言之就是由小到大逐步構造打基礎,由外到內析構剝洋蔥。

封閉類的物件,如果是用複製建構函式初始化的,那麼它裡面包含的成員物件也會用複製建構函式初始化。

除了可以有常量物件及常量成員函式以外,還可以有常量成員,其方法即是在成員前面直接加上const關鍵字,常量成員變數的值一旦初始化則不能再改變。

友元的作用則是放開一定的程式封裝性,允許外界呼叫一下類內封裝為私有的成員變數或者成員函式。其形式在於在類內的函式前面加friend關鍵字,表示這個類有了這個朋友friend。而友元又分為友元函式以及友元類;友元函式表示有乙個函式是我們這個類的朋友,友元類表明有了乙個類作為朋友。

this指標的作用是指向成員函式作用的物件,也就是現在作用於誰,this指標就預設的指向誰

#includeusing namespace std;

class complex

complex addone()

};int main()

c 基礎(5) 類的繼承(1)

一.類的繼承 1.共性與個性 共性表達不同型別事物之間共有的屬性和行為 個性用於刻畫每種事物特有的屬性和行為 2.共性表示為父類 基類 個性表示為子類 派生類 子類繼承自父類 基類派生出子類 二.繼承的基本語法 1.繼承表 乙個子類可以同時繼承零到多個父類,每個父類的繼承方式可以相同也可以不同 cl...

C 的探索路16 多型與虛函式之練習篇

class a virtual void func a virtual void fund class b public a void fun b class c public b void func c void fund int main 程式中包含了a,b,c三個類,a派生出b,b派生出c。a...

C 的多執行緒機制探索5

首先,我們定義乙個被操作的物件的類cell,在這個類裡,有兩個方法 readfromcell 和writetocell。消費者執行緒將呼叫readfromcell 讀取cellcontents的內容並且顯示出來,生產者程序將呼叫writetocell 方法向cellcontents寫入資料。publ...