已采納回答 / 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
最贊回答 / 慕沐5120513
C++可以做游戲開發,嵌入式開發,服務器開發,桌面軟件開發等;想入門的話可以先考慮看看慕客上的C++視頻,看完后對C++的理解會更深刻,然后再往更深層里研究。
2017-01-12
最贊回答 / 慕粉4092444
沒有。。。。。Person::soldier.attack()就變成Person這個類里面的soldier.attack()函數了,邏輯上就不對了!
2017-01-12
已采納回答 / qq_靜靜流_0
soldier.attack()士兵調用自己的方法,attack()是士兵的方法自己私有的懂嗎?可以實例化對象直接調用!我沒知道士兵繼承了person,因為是公有繼承所以士兵也有了人類的吃飯的方法!你可能以后為什么?以為士兵公有繼承了人,那么人的方法和屬性都會繼承來!因為士兵也是一個人,明白嗎?所以他也可以eat(),因為士兵并沒有重寫繼承來的eat(),所以可以直接調用person的eat()方法!知道為什么嗎?因為士兵繼承person后他就有了eat()方法,只是沒有寫出來!這也是為什么有繼承,因為可...
2016-12-15
最贊回答 / 大妮妮1051134
因為migrantworker可以從farmer ?和 worker繼承,而farmer和worker都是從person繼承的,這樣migrantworker就含有兩個person中的數據,這是不被允許的,所以采用虛繼承避免冗余數據。 ?migrantworker只是包含farmer一次,不存在冗余,所以不需要虛繼承
2016-12-07
已采納回答 / 岸芷汀蘭0u7
protected的特性是在類中不能直接訪問,但是可以間接訪問到。比如:在public中的一個函數sum中調用了protected中的變量m_ia,m_ib。即內部能夠訪問,但不能直接訪問。公有繼承到子類中依然是protected下,同樣是不能直接訪問m_ia,m_ib,但是可以間接訪問。
2016-11-15