[問題] 類別的繼承

看板C_and_CPP作者 (.)(.)時間12年前 (2012/07/04 17:50), 編輯推噓1(106)
留言7則, 5人參與, 最新討論串1/1
這篇是po在國考版,但後來發現po在本版可能比較合適 @@ 考試種類:鐵路特考 員級 出處:計算機概要 第26題 題目: 26 下列以C++程式語言撰寫之程式中,編號1、2、3哪些無法通過編譯? 考選部答案:(B) 2、3 class P { public: int v1; protected: int v2; private: int v3; }; class C : public P { }; int main() { C c; c.v1 = 10; // ★1★ c.v2 = 10; // ★2★ c.v3 = 10; // ★3★ return 0; } 想法: 類別C(子類別) 繼承 類別P(父類別),繼承的方式為 Public, 所以在 類別C 中,繼承自 類別P 的v1、v2、v3三個資料成員,其存取屬性不變 父類別的private屬性(v3)不能被其它類別存取,毫無疑義 但為何父類別的protected屬性(v2),不能被子類別存取? @@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.125.237

07/04 17:53, , 1F
P p; p.v2 = 10; 這樣會過嗎?
07/04 17:53, 1F

07/04 17:54, , 2F
疑!是我誤會嗎? v2 是放在 protected 裡, 子類別欲存取只
07/04 17:54, 2F

07/04 17:54, , 3F
能在 member func. 裡面. obj 不能直接存取 ?
07/04 17:54, 3F

07/04 17:56, , 4F
不是不能被子類別存取 而是main function看不到C裡面
07/04 17:56, 4F

07/04 17:56, , 5F
從main存取C.v2不叫做從C存取v2
07/04 17:56, 5F

07/04 17:59, , 6F
感謝各位指點,我剛仔細看洪維恩書裡的敘述,總算了解 @@
07/04 17:59, 6F

07/04 18:00, , 7F
「只能提供父類別與子類別的"內部"來存取」,之前忽略這點
07/04 18:00, 7F
文章代碼(AID): #1Fz17Pkp (C_and_CPP)