最贊回答 / 慕UI8711183
1、虛函數(shù)表不是只存儲虛函數(shù)的地址嗎? 怎莫理解您說的 “類對象的頭部即虛函數(shù)表所在” 這句話。虛函數(shù)表存放的是虛函數(shù)的地址,虛函數(shù)表指針存放的是虛函數(shù)表的首地址,在內(nèi)存中,子類對象Circle頭部(即前四個字節(jié))存放的是虛函數(shù)表指針,父類指針p指向子類Circle,也就是說把子類Circle的首地址賦值給p,根據(jù)p就可以找到子類Circle的虛函數(shù)表指針,依次找到虛函數(shù)表,再找到虛函數(shù)。2、沒有虛函數(shù),就沒有虛函數(shù)表,子類對象Circle頭部(即前四個字節(jié))就沒有虛函數(shù)表指針,就沒法調(diào)用子類對象Circ...
2016-03-18
最新回答 / Sacrt
是不是要初始化啊,F(xiàn)ighterPlane里面好像沒有m_strCode的數(shù)據(jù)成員,在Plane才有。改成“FighterPlane(string code):Plane(code)”試試
2016-03-12
最贊回答 / XZMYSTYLE
如果用new的話,下面的catch語句傳入的參數(shù)要用*代替&,同時catch里面的調(diào)用函數(shù)的語法也要用->來實現(xiàn)
2016-03-10
最新回答 / 慕斯卡2190356
只有函數(shù)聲明沒有函數(shù)定義的虛函數(shù)是純虛函數(shù)沒有問題 這句話意思應(yīng)該是只有聲明且編譯通過的虛函數(shù)是純虛函數(shù)
2016-03-10
已采納回答 / topband
肯定不是這樣的。1、使用virtual會產(chǎn)生一個虛擬指針表,要維持這個表,便額外加大了系統(tǒng)的開銷。2、也不是所有的成員函數(shù)都需要實現(xiàn)多態(tài)的,總有些函數(shù)實現(xiàn)的功能意義時固定的,比如說加減乘除3、虛繼承無非是為了避免諸如菱形繼承的情況,在我們構(gòu)建類圖的時候,就需要考慮到這些問題,如果能不用虛繼承,就不用咯。綜上,應(yīng)該是能不用就不用,C++就是以號稱節(jié)省資源,運行效率高的。如果在寫程序的時候,使得消耗過多的系統(tǒng)資源,便失去了這門語言高效的意義了。那還不如直接用一些新興的語言如GO,SCALA之類的了。
2016-03-09
最贊回答 / 計量趙子龍
這個網(wǎng)站的判斷系統(tǒng)沒有專業(yè)的oj那么嚴(yán)謹(jǐn),你要是想到網(wǎng)上做題,我推薦你一個網(wǎng)站http://acm.hdu.edu.cn/listproblem.php?vol=1
2016-03-09
已采納回答 / flurry
IndexException() 可以類比new IndexException()實際上前者是拋出一個類,后者是申請一個類。從老師的視頻中可以看到,該類是使用默認(rèn)構(gòu)造函數(shù),即沒有初始化參數(shù)。所以IndexException后加(),內(nèi)無參數(shù),如果有參數(shù),那么()內(nèi)應(yīng)該填寫相應(yīng)初始化參數(shù)值。
2016-03-02
最贊回答 / 小肚腩era
如果父類定義了一個虛函數(shù)-calcArea,子類繼承,但子類沒有去重新定義,那么,就會有2張?zhí)摵瘮?shù)表,并且,父類與子類的虛函數(shù)表指針地址不同,但都指向同一個函數(shù)指針,即父類中的虛函數(shù)-calcArea.
2016-02-21