農會 資訊管理類程式設計107 年第 9 題單選題
在C++語言中,下列何者基礎類別的資料成員及成員函數可為衍生類別所存取?
A只有public
Bpublic及private
C只有protected
Dpublic及protected正確答案
D正確答案
C++衍生類別可存取基礎類別的 public 與 protected 成員,private 則被隱藏無法存取。
為什麼答案是 D
public 與 protected 成員皆可被衍生類別繼承並直接存取,為本題正確解答。
考點:存取許可權考點:private限制考點:繼承存取
載入中…
完整詳解
Pro · 無限重點 C++衍生類別可存取基礎類別的 public 與 protected 成員,private 則被隱藏無法存取。
秒解口訣:「公保可繼承,私留自己」,看到衍生類別存取許可權,直接選 public 加 protected。
逐選項分析
A存取許可權✕
public 確實可被衍生類別存取,但漏掉了 protected,選項敘述不完整。
Bprivate限制✕ 陷阱
private 成員僅限基礎類別內部存取,衍生類別無法直接存取,此為常見錯誤觀念。
C存取許可權✕
protected 確實可被衍生類別存取,但漏掉了 public,選項敘述不完整。
D繼承存取✓ 正確
public 與 protected 成員皆可被衍生類別繼承並直接存取,為本題正確解答。
C++ 存取控制許可權對照表
| 存取修飾詞 | 類別內部 | 衍生類別 | 外部程式 |
|---|
| public | 可存取 | 可存取 | 可存取 |
| protected | 可存取 | 可存取 | 不可存取 |
| private | 可存取 | 不可存取 | 不可存取 |
考生常誤以為衍生類別能存取基礎類別的所有成員,或將 protected 與 private 的繼承許可權搞混。請牢記 private 是絕對封裝,連子類別都碰不到!