推 nowar100:他是virtual 會直接摳B的update() 04/12 12:34
→ QQ29:這也算是dynamic link吧 this = new B 但為什麼說直接 04/12 12:35
→ firose:access right 是看 static type 的吧 04/12 12:35
→ QQ29:至少有些 private public的限制呀 不是不同class嗎 04/12 12:35
→ QQ29:是dynamic binding 寫錯了~ 04/12 12:40
推 littleshan:access right 是在 compile time 幫你檢查的 04/12 12:47
→ QQ29:喔所以實際上compiler以為呼叫A::update? 04/12 12:55
推 littleshan:當你寫 p->Update() 的時候,p 的型別是 A* 04/12 12:57
→ littleshan:所以 compiler 當然只能看 A::update 是不是 public 04/12 12:58
推 nowar100:soka 所以我的觀念錯了 Orz 04/12 13:35
→ QQ29:那進去函式裡面 this也是A* 所以也是檢察 A::update是否為pub 04/12 13:52
→ QQ29:lic嗎? 04/12 13:52
推 LPH66:你的"進去函式裡面"是指? 04/12 13:55
※ 編輯: QQ29 來自: 219.87.64.222 (04/12 13:59)
→ QQ29:抱歉我貼錯連結了orz剛才發現 改了一下 我指的是p->A::update 04/12 13:59
→ QQ29:進去後會呼叫到B::update~ 04/12 14:00
→ QQ29:原來這網頁 refine後 網址會變= = 抱歉剛沒注意到 04/12 14:01
推 littleshan:你寫 p->A::update() 當然是呼叫 A 的 update() 04/12 15:12
→ littleshan:至於你說的呼叫到 B::update 是因為你多寫了一行 04/12 15:13
→ QQ29:恩我故意這樣 ~會呼叫到B::是因為this是=new B吧? 04/12 15:54
→ QQ29:原本不知道為啥可以存取private 但想成compile time檢查就 04/12 15:55
→ QQ29:通了~ 04/12 15:55