亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

最贊回答 / include9
課程中是兩個中間父類都變成了虛繼承。如果想通過子類初始化頂端父類的數據成員,可以只虛繼承一個中間父類

最新回答 / 慕圣2268672
老師安裝的visual studio 10? ? 旗艦版,只能幫你到這了

已采納回答 / 慕斯卡3951724
初始化列表先于構造函數執行

已采納回答 / 慕粉shuangyu
http://blog.csdn.net/starlee/article/details/619827 我在一個博客中看到的答案,覺得挺有道理的,你可以看看

已采納回答 / qq_一r過_03334883
這個例子是為了給你演示多繼承,實例化子類對象來給父類成員賦值,因為famer類只有m_strName而沒有m_strCode,woker類和它相反,而MigrantWorker類則具有兩個成員,如果只是給MigrantWorker類自己的成員賦值的話,是可以采用你說的普通方法。給父類成員賦值,也可以使用 ?MigrantWorker mk; ?mk.Famer::m_strName="XXXX"的方式,但是顯然初始化列表更加的省事。

最新回答 / 朵小妖兒
?不會的,因為在4.5節中有說到,只有void test1(Person p)這個對象的會先實例化一個對象p,來調用play,并在執行完之后自動銷毀,這樣就會有一個析構函數,之后的兩個都沒有實例化和銷毀的過程,所以效率高,也不會執行析構函數,但是如果加了虛析構函數,就會把父類和子類的內存一起釋放了

已采納回答 / Jason_Jay
1.實例化子類的時候會先構造父類對象,而釋放的時候則是先釋放子類,然后再釋放父類。2.編程中凡是有實例化的對象最后都要釋放掉,不然可能會導致內存泄漏。

已采納回答 / 憂傷的小鞋匠
哪里的ChildrenLabourer?如果是在堆中實例化對象的話,應該是ChildrenLabourer *p = new?ChildrenLabourer;(省略了參數列表),如果是在棧中實例化的話一般是ChildrenLabourer childrenLabourer。

已采納回答 / 慕數據8895736
最開始的時候執行了Person和Soldier的構造函數,如果不加虛析構函數的話? 你會看到就只釋放了Person的析構函數,這樣就少釋放了Soldier的析構函數,加了的話就會有~Soldier和~Person,一樣各執行了一次,沒有重復釋放ka ,不知這樣理解得對不對。

最新回答 / Kevin_dgt
已經解決了,使用g++ -std=c++11進行編譯就ok了

已采納回答 / Forest_Deer
建議題主貼下源碼和報錯
課程須知
本課程是C++初級課程 熟練掌握C++語言基礎語法,如需要學習C++基礎語法的可以看《C++遠征之起航篇》、《C++遠征之離港篇》、《C++遠征之封裝篇(上)》、《C++遠征之封裝篇(下)》
老師告訴你能學到什么?
1、什么是繼承 2、基類和派生類的概念 3、繼承的三種方式 4、多重繼承和多繼承 5、虛繼承是怎么回事

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消