C++:public繼承、protected 繼承、private繼承

C++中常見的3種繼承方式:public 繼承、protected 繼承和private繼承


public 
當採用公有繼承時,基類成員對其對象的可見性與一般類及其對象的可見性相同,公有成員課件,其他成員不可見。

基類成員對派生類的可見性對派生類來說,基類的公有成員和保護成員可見;基類的公有成員和保護成員作爲派生類的成員時,它們都維持原有的狀態;基類的私有成員不可見;基類的私有成員依然是私有的,派生類不可訪問和保護成員。


protected

保護繼承與私有繼承方式的情況相同。兩者的區別在於對派生類的成員而言,基類成員對其對象的可見性與一般類及其對象的可見性相同,公有成員可見,其他成員不可見。

基類成員對派生類的可見性對派生類來說,基類的公有成員和保護成員是可見的:基類的公有成員和保護成員都作爲派生類的保護成員,並且不能被這個派生類的子類所訪問;基類的私有成員是不可見的;派生類不可訪問基類中的私有成員。

基類對象對派生類對象的可見性對派生類對象來說,基類的所有成員都是不可見的。所以,在保護繼承時,基類的成員也只能由直接派生類訪問,而無法再往下繼承。


private

在私有繼承中,基類成員對其對象的可見性與一般類及其對象的可見性相同,公有成員可見,其他成員不可見。

基類成員對派生類的可見性對派生類來說,基類的公有成員和保護成員時可見的:基類的公有成員和保護成員都作爲派生類的私有成員,並且不能被這個派生類的子類所訪問;基類的私有成員是不可見的;派生類不可訪問基類中的私有成員。基類成員對派生類對象的可見性對派生類對象來說,基類的所有成員都是不可見的。所以,在私有繼承時,基類的成員只能由直接派生類訪問,而無法再往下繼承 
這裏寫圖片描述
這裏寫圖片描述