Q76.
依據以下類別之定義,下列之敘述何者是不正確的?
電腦軟體設計(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 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!