1.public,protected,private標號的訪問範圍。
public:可以被該類的函數,友元函數,子類函數訪問,也可以由該類的對象訪問。
protected: 可以被該類的函數,友元函數,子類函數訪問,但不能被該類的對象訪問。
private: 可以被該類的函數,友元函數訪問,但不能被子類函數和該函數對象訪問。
2.三種繼承方法繼承後子類屬性的變化。
父類中的private成員在三種繼承中在子類都不發生變化,仍然是private。下面主要介紹父類中的public,protected成員在三種繼承中子類屬性的變化:
public繼承:父類中的protected,public成員在子類中不發生變化。
protected繼承:父類中的protected,public成員在子類中屬性降爲protected。
private繼承:父類中的protected,public成員在子類中屬性降爲private。
3.三種繼承方式繼承後成員可見性情況。
公有繼承(public):
基類成員對於其派生類的可見性:public、protected成員可見,private成員不可見。
基類成員對於其派生類對象的可見性:public成員可見,protected、private成員不可見。
保護繼承(protected):
基類成員對於其派生類的可見性:public、protected成員可見,private成員不可見。
基類成員對於其派生類對象的可見性:都不可見。
私有繼承(private):
基類成員對於其派生類的可見性:public、protected成員可見,private成員不可見。
基類成員對於其派生類對象的可見性:都不可見。
4.基類與派生類的關係。
>子類是父類的具體化
這個特點和現實的真實模型很類似,比如父親規劃一個事業藍圖沒有實現就乘鶴西去,通常希望兒子來完成,兒子在父親的基礎之上,不僅將父親的事業繼承過來,還能夠發揚光大,將父親規劃的藍圖一點一點實現。在編程中,父類是對若干個子類的抽象,而子類是父類的具體化。父類抽取了他所有子類的公共特徵,而子類通過增加行爲將抽象類改造成適應當前發展需要的類。
>子類是父類定義的延續
有些家族的父親爲了鍛鍊後人,給後人留下的僅僅是紙上畫的一張張“大餅”,讓後人通過自己的努力將紙上的大餅變成可以喫的大餅。在使用C++編程中,可以在父類中只定義某些操作而不實現,由子類來實現。這種情況就是子類對父類的延續,也使子類常用的一種方法(純虛函數)。
>子類是父類的組合
在多繼承時,一個子類有多於一個的父類,這時子類將是所有父類行爲的組合。子類將其本身與父類區別開的方法是添加或修改數據成員或成員函數。