[問題] class繼承問題 請教

看板C_and_CPP作者 (我愛阿蓉)時間16年前 (2009/10/28 03:23), 編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/6 (看更多)
和學弟討論繼承概念的時候 我亂想了一些case 測試 發現一些觀念的錯誤但又不太會解釋 1. 原本以為static data member 寫在private public裡面其實沒差 都不屬於class本身 <======這件事我是用 (class A ;加上一個static int p; sizeof(A); 和去掉static int p在印出sizeof(A) 大小一樣,我認為他不屬於class本身.....) 所以外部都還是可以透過class name::去存取他 但是我發現我錯了 寫在private 外部無法用::去存取他 但是可以定義 <====這件事很怪 外面看不到卻可以定義? 2. private方式繼承老爸 可是變成老爸的東西我完全無法呼叫 那繼承幹嘛??? 有什麼用意......... 3.另外我自己對protected 作的白話解釋 你要給兒子 就只好寫成protected 兒子就多了老爸的protected的東西 protected 要用也是要透過 member function 對老爸來講 其實也是private的行為 只是多了可以給兒子繼承這個特性 以上有錯誤嘛? 4.有個不解的地方是 老爸的private資料明明就繼承給兒子 兒子看的到卻不能用 頂多透過 老爸的function去修改數值 然後要get時 再透過老爸的get function去get... 這樣為啥不直接老爸就寫成protected就好 有沒有什麼case是老爸必定要寫private 不然會有什麼漏洞或是什麼問題產生? 以上四點 是我和學弟討論遇到的小小問題 請各位指教 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187

10/28 03:31, , 1F
1.use static member function to access
10/28 03:31, 1F

10/28 03:32, , 2F
2.避免別人繼承你寫的東西以後就可以胡來
10/28 03:32, 2F

10/28 03:34, , 3F
畢竟寫出來的東西 不一定只有自己會用
10/28 03:34, 3F

10/28 03:35, , 4F
透過member function操作的好處是 永遠都在控制之中
10/28 03:35, 4F

10/28 03:50, , 5F
2.我看錯了...
10/28 03:50, 5F

10/28 04:03, , 6F
上面的2是在講4
10/28 04:03, 6F

10/28 04:07, , 7F
謝謝d大~ 觀念真的不好 應該說舉一反三的功力太差= =
10/28 04:07, 7F
文章代碼(AID): #1AvqYLf_ (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AvqYLf_ (C_and_CPP)