c++中繼承為什麼設計成派生類中新加的方法不能訪問基類的私有成員?
作者:由 我要 發表于 體育時間:2015-09-22
想讓派生類訪問的話,請使用protected關鍵字。
或者#define private public
你說一句繼承我,就可以隨便訪問我的私有成員啦?
那我還是李嘉誠兒子呢!我能去香港住他的別墅不?
基類和繼承類是不同的人編寫的,且繼承類的作者未必能看到基類原始碼。這樣基類的編寫者就可以亂寫一通而不必但心會影響別人用他的類啊。 私有是為了封裝具體實現,只暴露介面。
這不是很顯然麼,為了提供最恰當最合理的資料封裝性。
如果子類完全可見父類的成員,那麼子類的開發維護成本就會增加。
這樣的話,程式設計師就沒辦法降低子類的開發和維護成本了(在本可以降低的情況下)。
我好像bs在書裡說,他不推薦 protected,原因我也忘了。
既然是私有,為什麼要能訪問?