Q86.
下列有關解構子(Destructor)的描述何者是正確的?
電腦軟體設計(C++) · 乙級 · C++ · Q86
難易度分析
2 / 5
本題要求辨析物件導向程式設計中解構子的基本語法規範與行為特性,需對其命名規則、參數限制、執行順序及觸發時機等核心概念有準確掌握方能排除干擾選項。
正確答案:①類別中方法名稱和類別名稱完全相同的方法,方法的名稱前面要加上一 個"~"字元
① 類別中方法名稱和類別名稱完全相同的方法,方法的名稱前面要加上一 個"~"字元:解構子的命名規則確實為在類別名稱前加上波浪號(~),用以標示物件生命週期結束時的清理機制,此為 C++ 語法規範。
錯誤選項解析
- ② 可以宣告傳回值與參數:解構子不可宣告傳回值(連 void 也不行),且不能帶有任何參數,因此無法進行多載,此為與建構子的重要差異。
- ③ 成員物件會依類別之建構順序解構:成員物件的解構順序與建構順序相反(即後建構者先解構),以確保依賴關係正確的資源釋放。
- ④ 類別的物件建立時,會自動被呼叫:物件建立時自動呼叫的是建構子(Constructor),解構子則是在物件銷毀時才自動呼叫,兩者觸發時機不同。
Learning Tip
"本題核心考點為解構子與建構子的差異。常見陷阱包括混淆兩者呼叫時機(建立 vs. 銷毀)及成員解構順序(逆序解構)。切記解構子無傳回值、無參數、不可多載,且名稱必須為 ~類別名稱。"
學員答題分佈
①類別中方法名稱和類別名稱完全相同的方法,方法的名稱前面要加上一 個"~"字元0%
②可以宣告傳回值與參數0%
③成員物件會依類別之建構順序解構0%
④類別的物件建立時,會自動被呼叫0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!