派生類 呼叫順序 訪問等級 函式遮蔽

2021-10-06 18:35:16 字數 2543 閱讀 5581

#include

#include

#include

#include

using

namespace std;

class

human

public

://父類的同名函式構成函式過載

void

myfunction()

;void

myfunction

(int tem)

;protected

://只能在子類的成員函式中呼叫

int myprotected;

//本類和子類的成員函式可以訪問

void

myprofunction()

private:/

/子類都不能訪問

int myprivate;

void

myprifunction()

};//建構函式

human::

human()

human::

human

(int age, string str,

int myweath,

int myprivete)

//析構函式

human::

~human()

void human::

myfunction()

void human::

myfunction

(int tem)

class

man:

public human //男人類繼承自human類

;void man::

myfunction

(int tem)

man::

man(

)int

main

(void)/*

* (1)派生類的概念

* 類之間有一種層次關係,有父類有孩子類

* 車這個類叫父類(基類,超類),派生出卡車轎車(他們叫孩子類。子類,派生類)

* 有父類和子類。構成了層次關係,叫繼承。子類可以從父類那裡繼承很多東西。

* 繼承的概念是物件導向程式設計的核心思想之一。

* * 實現繼承:

* 1.定義乙個父類,定義一些公用的成員變數,成員函式

* 3.子類繼承自父類,子類是特殊的父類,可以用子類物件來初始化父類物件。子類一般比父類擁有更多的功能。

* (2)繼承方式,有public private protected,繼承是 class 子類名字:public/private/protected 父類

* * (3)派生類呼叫建構函式的順序

* 先呼叫父類的建構函式,初始化父類的成員變數,然後呼叫子類的建構函式,初始化子類的成員變數。

* (4)類成員函式和成員屬性的3中訪問許可權 與 3中繼承方式

* public:可以被任意實體訪問

* private:只允許本類的成員函式訪問

* protected:只允許本類或者子類的成員成員函式訪問。

* * 父類和子類使用public方式繼承

* 父類 子類 子類訪問型別

* public public public

* protected public protected //重要

* private public 無訪問許可權

* * public protected protected

* protected protected protected

* private protected 無訪問許可權

* ** public private private

* protected private private

* private private 無訪問許可權

* *注意:

* 1.子類public繼承不改變父類的訪問許可權

* 2.protected繼承將父類中的public成員改為子類的protected成員。

* 3.private繼承使的父類所有成員在子類中變為private

* 4.父類的private成員不受繼承方式的影響,子類永遠無法訪問

* 5.對於父類來講,尤其是父類的成員函式,如果你不想讓外部訪問,就設定為private,

* 如果你想讓子類訪問,就設定為protected,

* 如果想公開,就設定為public。

* *(5)函式遮蔽

* 子類物件可以呼叫父類的public,protected函式,但是當有同名函式時候,子類函式物件就會遮蔽父類的同名函式

* * using human::myfunction;

* 方法只能制定函式名,則凡是基類中的public protected的所有同名函式(myfucntion)在子類中都可見。

* 不能讓一部分同名函式在子類中可見,只能全部可見。

* using引入的主要目的是用來實現在子類中呼叫父類的同名函式。當子類中的引數個數,型別順序和父類中的同名函式可以

* 構成函式過載的時候才能區分開。

* */

C 派生類構造函式呼叫順序(詳解)

我們來看下面一段 class b1 class b2 class b3 class c public b2,public b1,public b3 private b1 memberb1 b2 memberb2 b3 memberb3 void main 執行後的結果如下 constructing ...

虛函式 與派生類遮蔽基類函式

class base public virtual void print void cout 10public void print int i cout base iter new dervied iter print 5 基類指標會在基類物件中尋找函式,找到函式名後,判斷引數,沒有乙個引數的,所...

C C 類和物件 派生類和函式遮蔽

類之間有層次關係 父類 基類 超類 子類 派生類 父類中定義一些公用的成員變數和成員函式 通過繼承父類來構建子類 class 子類名 繼承方式 父類當定義子類物件時候,父類和子類的建構函式都會被呼叫,而且,父類的建構函式的函式體先執行,子類的建構函式的函式體後執行 include using nam...