精華區beta NTUE-CS102 關於我們 聯絡資訊
說好是淺談了 給阿泰看看 在類別中(Class) 通常都會宣告幾個成員(Menber) 而成員中如果在其他類別裡面也重複出現 其實可以讓他們做一個 繼承動作 讓這個成員可以不用重複宣告 EX 這次作業的 賭博遊戲 撲克牌 骰子 他們都有一個共同的成員 積分(Score) - 如果要把他們個別宣告就會重複三次 Class gamble Class poker Class dice { { { int score; int score; int score; public: public: public: void sets(int Score) void sets(int Score) void sets(int Score) { { { score = Score; score = Score; score = Score; } } } .. .. .. .... .... .... } } } 像這樣 都會用到 set get函式 還有 score 成員 何不讓他們成為一種繼承關係 讓他們可以共用同一個宣告 - 繼承關係又分三種 老爸宣告的成員 public protected private ↓兒子依照繼承方式不同 繼承的狀況 public public protected 無法直接存取 protected protected protected 無法直接存取 private private private 無法直接存取 這課本裡都有 順便在這邊複習一下類別內 成員的宣告 與存取權限的這個部份 public : 類別內、類別外(主程式、函式等)皆可存取變更 protected : 類別內可存取變更、類別外不可 private : 類別內可存取變更、類別外不可 - 在這邊解釋一下 類別內外的意思 當你讀取這個成員的時候 是看呼叫的地方 是在類別內 還是 類別外 如果在 int main() 裡面呼叫 private 就是類別外了 這時候無法存取 如果在 class : sets() 裡面呼叫 private 就是在類別內 此時可以存取 變更 另外 繼承的時候 為何父類別的 private 成員 無法直接存取呢 ? - ┌───────┐ │ 兒 ┌───┤ │ │老 │ │ 子 │ 爸 │ └───┴───┘ 繼承的時候 如果有去列印出他們兩個的空間大小 就會發現 宣告兒子類別的時候 除了兒子內的成員外 會再加上老爸的成員空間 因此兒子想要直接讀取在老爸類別內的 private 成員是不可行的 只能利用在老爸 public 的設定函式、回傳函式來進行存取變更 大概就這樣 都說是淺談了沒講很深 有錯請指正 - -- 標題: Re: [公告]面對一下 威葛格表示:我崩潰了...
WAYS22275:所以PO這篇文章讓你覺得? 04/01 14:54
WAYS22275:新奇 溫馨 誇張 難過 實用 高興 無聊 生氣 伯溫 04/01 15:00
brightevil:伯溫>///< 04/01 16:12
t3603129:= = 04/01 17:08
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.127.36.135
gcobc12632:ㄎ 05/01 00:54
Arashinoon:阿泰有沒有懂一點阿 我跟你同本的 你應該知道 05/01 00:55
j2612280:Good~ 05/01 00:55
ip3311:幹嘛謙虛說淺談XD 就直接說 [影片]阿辣洗嫩教C++ 05/01 00:59
Arashinoon:哪來影片 ㄍㄟ校 05/01 01:00
ip3311:做成PTT動畫呀 啾咪^.< 保證會被推爆 05/01 01:03
gcobc12632:阿辣表示: 05/01 01:03
j2612280: 小case!! 05/01 01:10
s86186654418:member 05/01 16:20