/*多重繼承:
1.person類,資料成員:m_strname 成員函式:構造、析構、pay()
2.soldier類,資料成員:m_iage 成員函式:構造、析構、work()
3.infantry類,資料成員:無 成員函式:構造、析構、attack()
4.定義函式test1(person p) test2(person &p) test3(person *p)
*///虛析構函式 當存在繼承關係的時候,使用父類的指標去指向堆中的子類的物件
//並且還需要父類的指標去釋放這塊記憶體的時候就需要虛析構函式
class person
int main(void)
執行結果:
(1)當例項化子類時,會首先依次呼叫所有基類的建構函式,最後呼叫該子類的建構函式;銷毀該子類時,則相反,先呼叫該子類的析構函式,再依次呼叫所有基類的析構函式。
(2)無論繼承的層級有多少層,只要它們保持著直接或間接的繼承關係,那麼子類都可以與其直接父類或間接父類構成 is a的關係,並且能夠通過父類的指針對直接子類或間接子類進行相應的操作。
執行結果:#include#includeusing namespace std;
/*多繼承
1.famer類,資料成員:m_strname,成員函式:構造、析構、sow()
2.worker類,資料成員:m_strcode,成員函式:構造、析構、carry()
3.migrantworker類,資料成員:無,成員函式:構造、析構
*/class farmer
由輸出結果可以看出,在多繼承中,子類可以呼叫多個父類的成員函式,在例項化子類時,先根據繼承的順序依次呼叫父類的建構函式,然後再呼叫該子類自己的建構函式。
C 多繼承 多重繼承
派生類都只有乙個基類,稱為單繼承。除此之外,c 也支援多繼承,即乙個派生類可以有兩個或多個基類。多繼承的語法也很簡單,將多個基類用逗號隔開。例如已宣告了類a 類b和類c,那麼可以這樣來宣告派生類d class d public a,private b,protected c d 是多繼承形式的派生類...
多繼承與多重繼承
什莫是多繼承?乙個類擁有兩個或者兩個以上的父類 什莫是多重繼承?乙個類不僅僅有父類還有祖父類 什莫是虛繼承?虛繼承是為了解決多繼承的問題 經過這樣的宣告後,當基類通過多條派生路徑被乙個派生類繼承時,該派生類只繼承該基類一次,也就是說,基類成員只保留一次。菱形繼承 以往,在派生類的建構函式中只需負責對...
python多重繼承 多繼承相關
1 使用父類名.方法名呼叫父類方法 class parent def init self,name self.name name print parent的init方法被呼叫 class son1 parent def init self,name,age self.age age parent.i...