Examly題庫立即開始練習
國家安全情報人員考試五等考試-資訊組資料處理大意1047單選題

根據下列的 C++語言程式碼,請問輸出結果為何? #include <iostream> using namespace std; class CPet { public: void Show() { cout << "Pet"; } }; class CDog : public CPet { public: virtual void Show() { cout << "Dog"; } }; class CSmallDog : public CDog { public: void Show() { cout << "SmallDog"; } }; int main() { CPet aPet; CDog aDog; CSmallDog aSmallDog; CPet* pPet[3] = { &aPet, &aDog, &aSmallDog}; for (int i=0; i<3; i++) pPet[i]->Show(); return 0; }

APet Dog SmallDog
BPet Pet Pet正確答案
CPet Dog Dog
DPet SmallDog SmallDog
答案與詳解
B
正確答案
基底類別 CPet 的 Show() 非 virtual,透過 CPet* 指標呼叫時採靜態繫結,三次都輸出 Pet。

為什麼答案是 B

CPet::Show() 非 virtual,透過 CPet* 指標呼叫時採靜態繫結,直接呼叫 CPet::Show(),三個元素皆輸出 Pet。CDog 後來加 virtual 對基底無效。

考點:誤判多型考點:靜態繫結考點:virtual 生效位置考點:多型誤解
載入中…

資料處理大意 相關題目

想練更多資料處理大意考古題?

Examly 收錄 38 萬+ 道歷屆題目,每題都有像這樣的精選詳解。免費下載,立即開練。

Download on theApp Store即將推出Google Play
黑皮