已采納回答 / 蘇布達
父類指針指向子類對象,通過父類指針只能尋址到從父類繼承到的成員函數與數據成員,子類擴展的將會被截斷。但是,如果將父類中同名函數設置為虛函數,創建子類對象時將會創建子類自有的虛函數表,虛函數表指向的成員函數將覆蓋父類中的同名函數。
2018-09-28
最新回答 / weixin_慕雪0498266
抽象類包含接口類,區別在于接口類只含有純虛函數、無其他成員函數、構造函數、析構函數、數據成員;而抽象類在含有純虛函數以外,可以含有成員函數、數據成員、構造函數、析構函數。
2018-09-19
最贊回答 / 大葉_
Coordinate 要放在前面定義,這樣shape才能調用定義Coordinate的構造函數要寫成Coordinate::Coordinate(int _x, int _y)你的class Coordinate打錯了
2018-09-12
最新回答 / qq_raining
因為指針在定義的時候就指向了circle的對象,所以指針一直是指向circle對象內存區域的,因而delete的時候會找到circle對象的虛函數表,進行析構。然后父類shape再進行析構。
2018-09-12
最新回答 / 低調_低調
這個要細心看看代碼哦,代碼中使用的是父類去實例化子類,所以調用的是子類的構造函數,并且只傳了一個參數給子類的構造函數,所以當實例化父類的時候是沒有參數的,則會調用到默認構造函數。
2018-08-21