Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

為什麼要這樣?

0 views
Skip to first unread message

Sirius

unread,
May 14, 1997, 3:00:00 AM5/14/97
to

在c++裡,一個子類別為什麼不能存取父類別的private元件呢?

例如我定義一個class叫object,然後又定義一個class叫box,

box繼承object,但是object所含的private元件如x,y,z

在box裡面都不能直接用,這樣不是有點奇怪嗎?

有人可以告訴我為什麼要這樣設計?還是我的觀念有問題?


混世小妖

unread,
May 15, 1997, 3:00:00 AM5/15/97
to

==> 在 u334...@tknet.tku.edu.tw (Sirius) 的文章中提到:

這樣設計是有它的道理的,因為你會在你的父類別中將
某些成員設為 private 就是希望它不會被外部所取用到,
以達到封裝的目的。

如果你要在子類別中使用到父類別的成員,而又希望這些
成員不會被外部所取用的話,那你可以將它宣告為 protected 的
等級。
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>

用貓頭鷹寫程式的研究生

unread,
May 15, 1997, 3:00:00 AM5/15/97
to

※ 引述《u334...@tknet.tku.edu.tw (Sirius)》之銘言:
: 在c++裡,一個子類別為什麼不能存取父類別的private元件呢?

: 例如我定義一個class叫object,然後又定義一個class叫box,
: box繼承object,但是object所含的private元件如x,y,z
: 在box裡面都不能直接用,這樣不是有點奇怪嗎?
: 有人可以告訴我為什麼要這樣設計?還是我的觀念有問題?


用另外比較直觀的想法

父親所擁有的個性並不一定兒子也要有

例如 如果父親會抽煙 不一定表示他的兒子也一定要繼承這種習慣

那麼如果沒有一種機制可以模擬這種狀況

例如說 不論是什麼性質子類別都要照單全收

那這種情形就很難模擬了


--
※ 來源:台灣科技大學BBS(bbs.et.ntit.edu.tw) ◆來自: 140.118.3.117

0 new messages