已采納回答 / 潯無涯
dynamic_cast會根據基類指針是否真正指向繼承類指針來做相應處理。?對指針進行dynamic_cast,失敗返回null,成功返回正常cast后的對象指針;?對引用進行dynamic_cast,失敗拋出一個異常,成功返回正常cast后的對象引用。?
2016-03-23
最贊回答 / 蘿卜白菜西瓜
如果你定義的是Gun p,那么需要使用&取地址,也就是hunting(&p)。但是如果你定義的是Gun &p = new Gun(),那么gun本來就是代表的地址,所以直接使用即hunting(p),根據題目知道最后需要釋放內存,所以肯定是在堆上定義的,所以應該使用Gun &p = new Gun()這種形式。
2016-03-18
最贊回答 / 慕UI8711183
1、虛函數表不是只存儲虛函數的地址嗎? 怎莫理解您說的 “類對象的頭部即虛函數表所在” 這句話。虛函數表存放的是虛函數的地址,虛函數表指針存放的是虛函數表的首地址,在內存中,子類對象Circle頭部(即前四個字節(jié))存放的是虛函數表指針,父類指針p指向子類Circle,也就是說把子類Circle的首地址賦值給p,根據p就可以找到子類Circle的虛函數表指針,依次找到虛函數表,再找到虛函數。2、沒有虛函數,就沒有虛函數表,子類對象Circle頭部(即前四個字節(jié))就沒有虛函數表指針,就沒法調用子類對象Circ...
2016-03-18
最新回答 / Sacrt
是不是要初始化啊,FighterPlane里面好像沒有m_strCode的數據成員,在Plane才有。改成“FighterPlane(string code):Plane(code)”試試
2016-03-12