[問題] class繼承問題 請教
和學弟討論繼承概念的時候 我亂想了一些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
10/28 03:31, 1F
→
10/28 03:32, , 2F
10/28 03:32, 2F
→
10/28 03:34, , 3F
10/28 03:34, 3F
→
10/28 03:35, , 4F
10/28 03:35, 4F
推
10/28 03:50, , 5F
10/28 03:50, 5F
推
10/28 04:03, , 6F
10/28 04:03, 6F
→
10/28 04:07, , 7F
10/28 04:07, 7F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 6 篇):