Q90.
設計一個命名為run 的C++虛擬函式,以下那ㄧ個宣告正確?
電腦軟體設計(C++) · 乙級 · C++ · Q90
難易度分析
2 / 5
本題考查 C++ 成員函式宣告的語法規範,需精確辨識關鍵字在宣告過程中的擺放位置。
正確答案:②virtual void run() const =0;
② virtual void run() const =0;:此為正確的純虛擬函式宣告語法。virtual 關鍵字置於回傳型別前,const 置於參數列後表示此函式不修改物件成員,=0 表示純虛擬函式,使該類別成為抽象類別。
錯誤選項解析
- ① const void run();:const 修飾詞不能放在回傳型別之前,此語法在 C++ 中屬於無效宣告。正確用法應將 const 置於函式參數列之後,用於修飾成員函式不修改物件狀態。
- ③ const void run()=0;:缺少 virtual 關鍵字,無法宣告為虛擬函式。且 const 修飾詞位置錯誤,應置於函式名稱與參數列之後,而非回傳型別之前。
- ④ void run()virtual=0:語法順序完全錯誤。virtual 關鍵字必須置於函式宣告最前端,且 =0 前應使用標準等號而非全形符號。C++ 不支援此種宣告順序。
Learning Tip
"C++ 虛擬函式宣告的標準語法順序為:`virtual 回傳型別 函式名稱(參數) const(可選) =0(純虛擬可選)`。常考陷阱包括:const 修飾詞的正確位置(必須在參數列之後)、virtual 關鍵字必須在最前方、以及純虛擬函式的 `=0` 語法。需特別注意抽象類別至少包含一個純虛擬函式,無法直接實體化。"
學員答題分佈
①const void run();0%
②virtual void run() const =0;0%
③const void run()=0;0%
④void run()virtual=00%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!