c primer 物件導向程式設計

2021-07-05 21:41:21 字數 1212 閱讀 5407

1.重構現象:因為派生類的建構函式只能初始化它的直接基類,所以這樣就出現了一種新的現象——重構,重構是很常見的,它是指在子類中重新定義父類的建構函式,已達到自己想要的建構函式。重構要注意的是一旦被重構,編譯器必須重新編譯這些類的**。

class pp

;class d1:public base

;class d2:public d1;/*

*/

int main()

4.虛析構函式:(一般基類的析構函式需要用虛函式)下例:

class clxbase

; virtual ~clxbase() {};

virtual void dosomething() ;

};class clxderived : public clxbase

; ~clxderived() ;

void dosomething() ;

};

主函式:clxbase *ptest = new clxderived;//定義的是基類,這個跟基類是否是虛函式有很大關係
clxderived *p=new clxderived;//定義是派生類
ptest->dosomething();delete ptest;
delete p;//無論基類是否是虛函式都會從派生類開始呼叫

5.構造和析構的呼叫順序:下例:

class  base

輸出結果:

base_c

base_c

d1_c

base_c

d1_c

d2_c

d2_d

d1_d

base_d

d1_d

base_d

base_d

無論是多少級繼承,建構函式總是先從基類開始,而析構函式就是先從本身開始到基類。

C Primer 物件導向程式設計

1.要注意區分類和類物件,物件只能訪問public成員,而類和友元可以訪問private成員。而對於基類的protected成員,派生類可以訪問其基類的protected成員 友元中也可以訪問protected成員 不能通過派生類物件在類外訪問protected成員 這點與private類似 值得注...

C Primer 物件導向程式設計

1 在c 中,基類將型別相關的函式與派生類不做改變直接繼承的函式區分對待。對於某些函式,基類希望它的派生類各自定義適合自身的版本,此時基類就將這些函式宣告成虛函式 virtual function 2 在c 中,當我們使用基類的引用 或指標 呼叫乙個虛函式時將發生動態繫結。3 關鍵字virtual只...

c primer 物件導向程式設計筆記

1 動態繫結 在c 中,通過基類的引用 或指標 呼叫虛函式時,發生動態繫結。引用 或指標 既可以指向基類物件也可以指向派生類物件。2 虛函式 1 保留字virtual 只在類內部的成員函式宣告中出現,不能用在類定義體外部初相的函式定義上。2 派生類中虛函式的宣告必須與基類中的定義完全匹配,但有乙個例...