繼承,構造函數

繼承方式-private, protected, public,默認是私有繼承
繼承形式-class b:public A{...};
基類的私有成員在派生類是隱藏的
私有繼承時,基類的公有成員和保護成員改變爲私有成員
公有繼承時,公有成員和保護成員仍是如此
保護繼承時,公有成員變爲保護成員

在沒有繼承的情況下,protected跟private相同。在派生類的時候纔出現分化。
基類對象不能訪問基類的protected成員,派生類中可以訪問基類的protected成員。
派生類對象如果要訪問基類protected成員只有通過派生類對象,派生類不能訪問基類對象的protected成員。
也就是說private成員是不能被繼承的,只有public,protected的成員纔可以被繼承。
 
先調用基類的構造函數,然後派生類的構造函數
先調用派生類的析構函數,在調用基類的構造函數

多重繼承中標識符衝突的問題,使用作用域運算符,使用同名覆蓋原則,使用虛函數
虛基類是爲了解決同名成員之間而產生的二義性問題,具體做法是將公共基類聲明爲虛基類
class base1:virtual public base{};
class base2:virtual public base{};
class derived:public base1, public base2{};
// base 爲虛基類,虛基類的成員在進一步派生過程中,和派生類一起維護同一個內存拷貝
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章