民國98年 第3梯次 數位電子甲級 學科
第79題
在C + + 程式語言中,下述何者正確
題目
在C + + 程式語言中,下述何者正確
- (1) 被繼承的類別為「衍生類別」( d e r i v e d c l a s s ) ,而經由繼承的關係所定義出的類別為「基礎類別」( b a s e c l a s s )
- (2) 「基礎類別」中的「資料成員」若欲僅供其「衍生類別」所用,而不為其他類別使用,則應宣告為「p r i v a t e 」
- (3) 「基礎類別」 中的「資料成員」若欲僅供其「衍生類別」所用,而不為其他類別使用,則應宣告為「p r o t e c t e d 」
- (4) 「p r i v a t e 」和「p r o t e c t e d 」的作用相同,因而兩者是可以混用的
官方答案
(3) 「基礎類別」 中的「資料成員」若欲僅供其「衍生類別」所用,而不為其他類別使用,則應宣告為「p r o t e c t e d 」
解析
C++ 以 protected 宣告資料成員時,該成員可供基礎類別本身及其衍生類別直接存取,但類別外的其他程式碼不得使用,正符合「僅供衍生類別所用」的需求。若宣告為 private,則連衍生類別也無法直接存取,只能透過基礎類別提供的公有函式間接操作;private 與 protected 的可見範圍不同,不可混用。此外,被繼承的原有類別稱為基礎類別(base class),經繼承新定義者才叫衍生類別,選項 1 的名稱剛好顛倒。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。