已采納回答 / weibo_以形為心役_0
頭文件是否有#include<iostream>是否有命名空間using namespace std;m_strName屬于哪個對象需要指明,例如cout<<soldier.m_strName<<endl;
2017-03-29
已采納回答 / _Devil___4213279
當C++由于頭文件重復包含了所定義的變量或者常量,比如視頻中兩個文件中都有#include“person.h”就重復包含了person類的數據。
2017-03-18
已采納回答 / gdjy098
在這里,是不是B是A的子類???如果B是A的子類,前提:class B:public AB b;A a = b;//用子類B的對象初始化父類A的對象A a1;a1 = b;//用子類B的對象賦值給父類A的對象A*p = &b;//用父類A的指針指向子類B的對象bA&a2 = b;//用子類B的對象初始化父類A的引用? ? ? 子類創建時候是先調用基類的構造函數,然后再調用子類的構造函數。你用子類的構造函數是完全可以實例化基類的。給你個網址,它講的比較清楚https://zhidao.baid...
2017-02-03
已采納回答 / qq_靜靜流_0
soldier.attack()士兵調用自己的方法,attack()是士兵的方法自己私有的懂嗎?可以實例化對象直接調用!我沒知道士兵繼承了person,因為是公有繼承所以士兵也有了人類的吃飯的方法!你可能以后為什么?以為士兵公有繼承了人,那么人的方法和屬性都會繼承來!因為士兵也是一個人,明白嗎?所以他也可以eat(),因為士兵并沒有重寫繼承來的eat(),所以可以直接調用person的eat()方法!知道為什么嗎?因為士兵繼承person后他就有了eat()方法,只是沒有寫出來!這也是為什么有繼承,因為可...
2016-12-15
已采納回答 / 岸芷汀蘭0u7
protected的特性是在類中不能直接訪問,但是可以間接訪問到。比如:在public中的一個函數sum中調用了protected中的變量m_ia,m_ib。即內部能夠訪問,但不能直接訪問。公有繼承到子類中依然是protected下,同樣是不能直接訪問m_ia,m_ib,但是可以間接訪問。
2016-11-15
已采納回答 / 慕粉shuangyu
http://blog.csdn.net/starlee/article/details/619827 我在一個博客中看到的答案,覺得挺有道理的,你可以看看
2016-10-19
已采納回答 / qq_一r過_03334883
這個例子是為了給你演示多繼承,實例化子類對象來給父類成員賦值,因為famer類只有m_strName而沒有m_strCode,woker類和它相反,而MigrantWorker類則具有兩個成員,如果只是給MigrantWorker類自己的成員賦值的話,是可以采用你說的普通方法。給父類成員賦值,也可以使用 ?MigrantWorker mk; ?mk.Famer::m_strName="XXXX"的方式,但是顯然初始化列表更加的省事。
2016-10-09
已采納回答 / Jason_Jay
1.實例化子類的時候會先構造父類對象,而釋放的時候則是先釋放子類,然后再釋放父類。2.編程中凡是有實例化的對象最后都要釋放掉,不然可能會導致內存泄漏。
2016-10-09
已采納回答 / 憂傷的小鞋匠
哪里的ChildrenLabourer?如果是在堆中實例化對象的話,應該是ChildrenLabourer *p = new?ChildrenLabourer;(省略了參數列表),如果是在棧中實例化的話一般是ChildrenLabourer childrenLabourer。
2016-10-05
已采納回答 / 慕數據8895736
最開始的時候執行了Person和Soldier的構造函數,如果不加虛析構函數的話? 你會看到就只釋放了Person的析構函數,這樣就少釋放了Soldier的析構函數,加了的話就會有~Soldier和~Person,一樣各執行了一次,沒有重復釋放ka ,不知這樣理解得對不對。
2016-09-27