繼承和派生是物件導向程式設計的兩個重要的特性,繼承是從已有的類那裡得到已有的特性,已有的類為基類或父類,新類為派生類或子類。他們是從不同的角度說明類之間的關係,這種關係包含了訪問機制、多型和過載等。
1、繼承
解釋:它是用已有的資料型別建立新的資料型別,並保留已有資料型別的特點。
(1)類的繼承
繼承方式有三種派生類:public private protect,訪問控制修飾符也是這三種型別。」:「標識基類和派生類之間的繼承關係。
格式:
class 派生類名識別符號:[繼承方式] 基類名識別符號
例子:
class cemployee
; class coperator :public cemployee//定義乙個操作員類,從cemployee類中派生而來
;//此時,操作員類裡面就繼承了cemployee的所有東西,同時又派生出來了operator的特性
2、繼承後的可訪問性
繼承方式:public,private,protect
(1)public繼承(共有型派生)
它原來是公有的或私有的,public派生類中仍然是過去的屬性。對於私有型的還是只能在本類中使用,派生類是不能直接用的。
(2)private繼承(私有型派生)和公有繼承相似
(3)protect繼承(保護型派生)在派生後,基類的屬性都變成了保護類,且保護類的內部資料不能隨意更改。
3、建構函式訪問順序
先呼叫父類的建構函式,再呼叫子類的。而析構時,先析構子類的,後析構父類的。
4、子類隱藏父類的成員函式
如果子類中定義了和父類相同的成員函式,在引用時,用子類定義的物件直接引用的是子類的函式,它將父類那個給隱藏了。訪問不到。
如果就想用子類定義的物件訪問父類中的成員函式,則只能是——物件.父類::函式()這樣引用。
如果重定義了函式,則同樣要指明它的父類名稱。
如果用父類定義了乙個指標,在引用時,直接就是指標指向的那個函式了。
5、過載運算子
在普通的型別中的加減等運算是可以直接進行的,但是在構造的新類中,想用加減法等,電腦是不認識的,只能再重新定義加減法的功能,因此需要過載運算子。
宣告格式:
opertator 型別名();(具體內容省略)
6、轉換運算子
如:int i=10;
double d;
d=(double)i;
程式中將整型數i強制轉換成了double型。
格式:
operator double(){}
7、多重繼承
解釋:子類從多個父類繼承受保護的成員。
格式:
class 派生類名識別符號 [繼承方式] 基類1,[繼承方式] 基類2{};
在多重繼承中會遇到乙個問題,就是如果父類1和父類2有重名的成員函式,子類建立物件想呼叫父類的這個成員函式時,會用哪個父類的?這就需要解決二義性的問題。
8、二義性的解決方案——多重繼承的構造順序
多重繼承中的基類建構函式被呼叫的順序與類派生表中宣告的順序為準。這個表就是按照基類名識別符號的前後順序進行的。
9、多型
解釋:多型性是指具有不同功能的函式用同乙個名字。它通過聯編實現,聯編是指乙個計算機程式設計師自身彼此關聯的過程。聯編可以分為兩種:靜態聯編和動態聯編。且根據聯編的時刻不同,存在兩種型別多型性,即函式過載和虛函式。
10.虛函式
解釋:虛函式就是能實時實現動態繫結的函式,它的方法是,定義乙個指向基類物件的指標變數,並使它指向同一類族中需要呼叫該函式的物件,通過該指標呼叫這個函式。如果沒有虛函式的話,它定義的基類指標呼叫時永遠是呼叫的基類裡的方法,而不是派生類的。在基類使用虛函式後,它的派生類的這個同名函式同樣也成為了虛函式。但是,這時,只要寫明呼叫的是誰,就可以跳到**去。
11、純虛函式
解釋:包含有純虛函式的類成為抽象類,乙個抽象類至少有乙個純虛函式。純虛函式是指被標明為不具體實現的虛成員函式。它不能被直接呼叫,僅僅起到提供乙個與派生類相一致的介面作用。
格式:
virtual 型別 函式名(引數列表)=0;
C 繼承與派生
派生新類 吸收已有類的成員 調整已有類成員和新增新的成員 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,派生類成員宣告 繼承方式有 public protected private 預設 公有繼承 基類的公有和保護乘員的訪問屬性在派生類中不變,基類的私有成員不能直接訪問 型別相容規則...
c 繼承與派生
繼承 與派生 一 派生方式的不同的表現 1 派生類在類內成員對基類成員 的訪問許可權 2 派生類的物件對基類成員的訪問許可權。二 公有繼承 1 基類protected和public的成員在派生類中訪問屬性保持不變 2 基類的private成員在派生類中不可訪問。3 派生類的成員 即派生類內 可以直接...
c 繼承與派生
一 基本概念 1 類的繼承,是新的類從已有類那裡得到已有的特性。或從已有類產生新類的過程就是類的派生。原有的類稱為基類或父類,產生的新類稱為派生類或子類。2 派生類的宣告 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,繼承方式 基類名n 3 乙個派生類可以同時有多個基類,這種情況稱為...