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

依據以下類別之定義,下列之敘述何者是不正確的?電腦軟體設計(C++) 乙級 C++ 第 76 題 題目 圖片

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

難易度分析

3 / 5

本題要求分析 C++ 繼承結構中,基底類別與衍生類別成員函式對於不同權限成員的存取限制,需正確掌握繼承權限的單向流向特性。

正確答案:①pb()可以使用成員b1, b2 及d

① pb()可以使用成員b1, b2 及d:此敘述不正確。基底類別的成員函式 pb() 只能存取所屬類別的成員 b1 與 b2,無法存取衍生類別才有的成員 d,因為基底類別對衍生類別的擴展完全不知情。

錯誤選項解析

  • ② pd()可以使用成員b1 及 d:此敘述正確。衍生類別的成員函式 pd() 可以存取從基底類別繼承而來的 public/protected 成員 b1,以及自身類別的成員 d,符合 C++ 繼承的存取規則。
  • ③ outside()可以使用成員pd():此敘述正確。若 pd() 為衍生類別的 public 成員函式,則外部函式 outside() 可透過物件或指標正常呼叫使用,符合 public 介面之存取規範。
  • ④ outside()可以使用成員pb():此敘述正確。若 pb() 為基底類別的 public 成員函式,則外部函式 outside() 可透過基底類別物件或指標正常呼叫使用。
Learning Tip

"此題核心考點為 C++ 繼承機制中的成員存取權限。基底類別成員函式無法存取衍生類別的成員,但衍生類別可存取基底類別的 public/protected 成員。常考陷阱在於混淆「單向繼承」的知識流向——基底類別不知道衍生類別的存在,反之則可。另需注意 private 成員僅限所屬類別內部存取,即使是衍生類別也無法直接使用。"

學員答題分佈

①pb()可以使用成員b1, b2 及d0%
②pd()可以使用成員b1 及 d0%
③outside()可以使用成員pd()0%
④outside()可以使用成員pb()0%

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

相似類型題目