下面是我定義類:
class
father
void
fun_father()
~father()
};class
father1
:public father
void
fun_father1()
~father1()
};class
son:
public father1
void
fun_son()
~son()
};
這個是他們三者之間的關係:
下面進行測試:
1.建立father物件
//1.建立father類的物件
father *a=
newfather()
;
結果為:(只呼叫了father類的建構函式)
2.建立father1物件
//2.建立father1類的物件
father *a=
newfather1()
;
結果為:(先呼叫father類的建構函式,再呼叫father1類的建構函式)
3.建立son物件
//3.建立son類的物件
father *a=
newson()
;
結果為:(先呼叫father類的建構函式,再呼叫father1類的建構函式,最後再呼叫son的建構函式)
1.建立father物件
//1.建立father類的物件
father1 *a=
newfather()
;
結果:報錯,派生類指標無法建立基類物件
2.建立father1物件
//2.建立father1類的物件
father1 *a=
newfather1()
;
結果:先呼叫father類的建構函式,再呼叫father1類的建構函式
3.建立son物件
//3.建立son類的物件
father1 *a=
newson()
;
結果:先呼叫father類的建構函式,再呼叫father1類的建構函式,最後再呼叫son的建構函式
總結:
用指標例項化乙個物件的時候,構造函式呼叫的循序和指標的型別無關,只與要建立的物件有關,並且會從最上層的基類的建構函式開始一層一層往下呼叫,直到呼叫了你要建立的那個物件的建構函式。
基類的指標可以建立出派生類的物件,但是派生類的指標無法建立出基類的物件
1.delete 建立father物件的father指標
father *a=
newfather()
;delete a;
結果:呼叫了father類的析構函式
2.delete 建立father1物件的father指標
father *a=
newfather1()
;delete a;
結果:還是呼叫了father類的析構函式
3.delete 建立son物件的father指標
father *a=
newson()
;delete a;
結果:還是呼叫了father類的析構函式
1.delete 建立father1物件的father1指標
father1 *a=
newfather1()
;delete a;
結果:先呼叫了father1的析構函式,再呼叫了father的析構函式
2.delete 建立son物件的father1指標
father1 *a=
newson()
;delete a;
結果:先呼叫了father1類的析構函式,在呼叫了father的析構函式
1.delete 建立son物件的son指標
son *a=
newson()
;delete a;
結果:先呼叫了son的析構函式,再呼叫了father1的析構函式,最後呼叫了father的析構函式
總結:
析構函式的呼叫只與指標的型別有關,與new出來的物件無關,並且是由派生類一層一層往上析構的,直到最開始的基類被析構掉。
只能訪問到father類裡面的方法
能訪問到father1和father的方法
能訪問到father,father1和son三個的方法
總結:
訪問許可權也是只和指標型別有關的,與建立的物件無關,並且派生類可以訪問到整條繼承鏈條之前的全部方法
C 類的繼承
繼承是物件導向程式設計的主要特徵之一,它可以讓你重用 可以節省程式設計的時間。1.object類的作用。object object為別名 是所有類的基類,在c 中所有的類都直接或間接繼承於object,如果在乙個類的宣告中沒有指定它繼承於哪個類則是繼承於object類。2.類繼承的實現。以下定義兩個...
C 類的繼承
複習下c 類的繼承,先看下面例子 class a public可以在類內部 派生類 類的例項訪問 protected void test2 protected可以在類內部 派生類訪問 private int m a m a為private,只能在本類使用 class b public a class...
c 類的繼承
類的繼承有三種方式 1 公有繼承 2 私有繼承3 保護繼承 基類中的私有成員在派生類中時隱藏的,只能在基類中訪問 派生類中的成員不能訪問基類中的私有成員,但是可以訪問基類中的公有成員和保護成員。派生類從基類公有繼承時,基類的公有成員和保護成員仍然是派生類中的公有成員和保護成員 私有繼承時,公有成員和...