已采納回答 / 慕后端7037387
我認(rèn)為是這樣,類的成員函數(shù)都在代碼區(qū),不同的類的成員函數(shù)在代碼區(qū)有自己的類名稱空間限制,類的虛函數(shù)在虛函數(shù)表中,程序執(zhí)行的時候,是先在虛函數(shù)表中找該成員函數(shù),如果沒有找到,就去該類在代碼區(qū)的成員函數(shù)中去找。所以如果父類的成員函數(shù)加上virtual時,訪問的時候是先在虛函數(shù)表中查找,如果找到了,就執(zhí)行,沒找到就再在該類的代碼區(qū)查找。所以父類普通的成員函數(shù)只能在父類的代碼區(qū)找到。也就是說通過父類指針找普通成員函數(shù)時,雖然父類指針指向子類對象,通過父類指針只能訪問子類對象的數(shù)據(jù)成員(部分,父類獨有的),不能訪問...
2016-10-22
好坑,第一注意引用頭文件#include<typeinfo>。第二注意定義Movable 類,及純虛函數(shù)move()。第三,fire和carry函數(shù)加上void。第四,doSomething(&b)及doSomething(&t)。
2016-10-10