已采納回答 / 好的煢大王
return 的值是沒被打印出來的。在釋放內存前 加上: cout << shape1->calcArea() << endl;? cout << shape2->calcArea() << endl;就可以打印出兩個值了~
2017-07-23
已采納回答 / 慕圣2268672
還是用person和soldier打比方,*p=&s是對的,因為士兵肯定是人,但*s=&p編譯器就會提示錯誤,因為人不一定就是士兵,這么說應該好理解吧!
2017-07-09
已采納回答 / pp_pcz
#ifndef 是判斷有沒有定義后面的那個宏,如果沒有就進行后面的宏定義并且定義相應的類或其他,有的話就不進行下面的定義,這樣可以避免在多個文件引入頭文件時造成的重復定義。
2017-05-01
已采納回答 / 書之詩ae
你的Worker繼承的是一個抽象類,繼承后就把派生類也變成抽象類了,解決方法:派生類的void Worker::work()改成void Worker::worker();或者把抽象類的Person的virtual void worker()=0改成virtual void work()=0;就可以解決啦。望采納!
2017-04-18
已采納回答 / 韓尛靖
private:?? ?int m_iAge();你定義的是一個成員函數;調用的時候卻當成成員變量使用。應該把那個括號去掉就可以了?!rivate:?? ?int m_iAge;
2017-03-31
已采納回答 / qq___思念不破海丶_1
本質上所有的操作系統都是一個死循環,不停的接收以及響應用戶的處理和給予反饋真正的問題在于要分析清楚你所需要的所有資源的生命周期,包括內存的申請和釋放,外設的創建和銷毀等等。只要是你申請的資源,你必須確認他能夠及時正確的得到銷毀。還有一點是既然死循環必須要考慮何時和怎樣釋放CPU,例如利用信號量等待將當前任務/進程掛起,或者簡單的利用wait/sleep之類函數主動釋放。
2017-03-24
已采納回答 / 慕仔5649330
寫到基類,只是將直接include iostream 變成通過include 基類頭文件間接include iostream,有時這樣反而造成更多的空間浪費,比如你有一個.cpp可能只需要用到iostream頭文件中的東西,而不需要基類頭文件中的東西,你這時候包含基類頭文件反而是浪費,所以包含頭文件盡量不要傳遞,即通過include某個頭文件而include另一些頭文件
2017-03-23
已采納回答 / YX4387299
如果在基類已經有virtual關鍵字的前提下,派生類需要加virtual關鍵字才通過的話,很有可能就是編譯器的問題了,不同的編譯器可兼容和擴展性能不同,就像有些編譯器直接main(){}(不用int關鍵字)都可以編譯,建議更新一下IDE試試
2017-02-15
已采納回答 / 范更
因為,內存中有程序代碼區,堆區,棧區,全局區(靜態區),文字常量區。在定義一個類時,它的成員函數,虛構函數,構造函數就被存入程序代碼區,供所有對象調用。在實例化一個類的對象時,并沒有拷貝類的函數,僅僅存入了數據成員,因此類的對象中有數據成員,然而當用父類的指針指向子類的對象時,調用同名函數時會調用父類的同名函數,當想要調用子類的同名函數引入了虛函數,當調用普通成員函數時,計算機可以在代碼區識別該函數,無需用函數指針,因而,在對象中只有數據成員的大小。
2017-02-12
已采納回答 / 慕后端0430185
可以通過代碼檢測拋出,舉個例子,典型異常捕獲除數為零這種情況,可以通過if語句判斷是否除數為零,如果為零,則通過throw關鍵字拋出異常,并通過catch語句去捕捉,給你參照一個小程序:#include <iostream>#include <string>#include <stdlib.h>using namespace std;/*** 定義函數division* 參數整型dividend、整型divisor*/int division(int dividend,...
2017-01-08