LONGEPASS
電腦軟體設計(C++)/C++/Q141
中等
正確率 -
Q141.

下列那些C++指令需要使用複製建構子(Copy Constructor)?電腦軟體設計(C++) 乙級 C++ 第 141 題 題目 圖片

電腦軟體設計(C++) · 乙級 · C++ · Q141

難易度分析

3 / 5

本題採複選形式,要求考生必須能全面分析多個程式碼片段,並精確區分物件初始化與後續賦值等不同生命週期階段的行為,增加了判斷的複雜度。

正確答案 (複選):②, ③

  • ② 乙:當物件以傳值方式(pass by value)作為函式參數傳遞時,系統會自動呼叫複製建構子來建立參數的副本,以確保原始物件與副本相互獨立。
  • ③ 丙:當函式以傳值方式回傳物件時,會呼叫複製建構子建立回傳值的臨時副本(temporary object),此為 C++ 標準規範的物件生命週期行為。

錯誤選項解析

  • ① 甲:此情境未觸發複製建構子的呼叫條件,可能是以傳參考(pass by reference)方式傳遞物件,或僅為一般變數宣告,不涉及物件的複製初始化。
  • ④ 丁:此情境屬於指派運算子(operator=)的操作,而非複製建構子的呼叫時機。複製建構子用於初始化階段,指派運算子用於已存在物件之間的賦值,兩者機制不同。
Learning Tip

"複製建構子的三大觸發時機為:①物件以傳值方式傳遞給函式、②函式以傳值方式回傳物件、③以既有物件初始化新物件。常考陷阱為混淆複製建構子與指派運算子的差異,前者發生於物件建立時,後者發生於物件已存在後的賦值操作。實務上建議善用傳參考(const reference)避免不必要的複製建構子呼叫以提升效能。"

學員答題分佈

①甲0%
②乙0%
③丙0%
④丁0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目