最贊回答 / iloveyoulcx
main函數里面的 Solider M 拼錯了,應該是Soldier題目要求把Soldier類型的對象命名為soldier(cout 那兩句.前面用了soldier)
2018-06-18
最贊回答 / Jedenn
首先確定如下事實:創建派生類對象時,程序首先調用基類構造函數,然后再調用派生類構造函數。(因此,Soldier soldier; 會先調用Person構造函數,后調用Soldier構造函數)Person p = soldier; 使用的是拷貝初始化,調用拷貝構造函數(不是構造函數),當前情況使用的是默認拷貝構造函數Person p; 屬于默認初始化,調用的是Person構造函數。無論Person p = soldier; 還是 Person p; 生成的對象p,銷毀時都是調用的~Person析構函數。第2...
2018-03-19
最贊回答 / Jedenn
在C++中,內存分成5個區,他們分別是堆、棧、自由存儲區、全局/靜態存儲區和常量存儲區1. 棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變量的存儲區。里面的變量通常是局部變量、函數參數等。2. 堆,就是那些由new分配的內存塊,他們的釋放編譯器不去管,由我們的應用程序去控制,一般一個new就要對應一個delete。如果程序員沒有釋放掉,那么在程序結束后,操作系統會自動回收。3. 自由存儲區,就是那些由malloc等分配的內存塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。4...
2018-03-18