最贊回答 / qq_慕前端0595576
這么說吧,父類中的protected:m_strName被子類繼承了,但由于子類也定義了一個m_strName,這就使得父類的m_strName被隱藏,當然,父類的m_strName和子類的m_strName都在子類對象所在的空間里,要想訪問父類的m_strName需要用到Person::m_strName。? ? ? ? ?父類是接口,繼承來的東西也會復制到子類中,無論是soldier.m_strName還是soldier.Person::m_strName,操作的數據都是soldier對象所在空間里的...
2018-02-11
最新回答 / Jedenn
這個視頻思路很清晰,個人覺得跟上老師思路能把握住核心主干。程序源代碼沒有,自己親自敲一遍更好。要進一步學習還要多看資料書,研究C++各種機制背后的實現原理(原理大多涉及內存模型)
2017-12-22
最贊回答 / 慕斯6136978
并不是這樣的,戰士類中private中繼承人類的數據成員,比如name,在戰士中變成了private下的,所以戰士類的派生類步兵類的成員函數怎么能訪問到其基類的name呢,就像你父親的私房錢是他私有的,你就不能去訪問了
2017-12-16
最贊回答 / 慕的地0332996
宏定義是解決重定義的問題,重定義就是如果在多個頭文件中引用了同一個或多個頭文件,編譯器在編譯的時候會多次編譯頭文件,加上宏定義使用#ifdef 來判斷一下就可以避免這種情況
2017-11-14
最贊回答 / qq_David堯堯_0
首先 子類中如果有跟父類中同名的成員函數,不會出現重載,會繼承該成員函數,只是在調用時有區別:子類對象.同名函數 ? 調用的是子類中自己定義的同名成員函數子類對象.父類::同名函數 ?調用的是繼承的同名成員函數
2017-10-17