#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...