[問題] Static binding v.s. dynamic binding

看板C_and_CPP (C/C++)作者 (nikeasyanzi)時間12年前 (2013/09/11 01:33), 編輯推噓3(3010)
留言13則, 9人參與, 最新討論串1/1
想請問版上各位先進 Static binding v.s. dynamic binding 的優缺點 因為既然已經有Static binding 了 如果各個class 有相同的member function 就直接各自override redefinition就好 而且若只單純用static binding derived class 有需要時 還可以指定呼叫base class 被override的member function 雖然上述功能 似乎有點雞肋 但static binding執行速度也是比dynamic binding 來的快 為何還要弄個dynamic binding 立意何在? 有先進可以解釋一下 在實際設計上的優缺點嗎? -- CyberPanel 5000CP 換 NT.500 http://myurl.com.tw/05bd EmailCash 5000e 換 NT.500 http://myurl.com.tw/rgdq -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.212.37

09/11 01:44, , 1F
因為只有dynamic才能在執行期才決定要呼叫哪個函數
09/11 01:44, 1F

09/11 01:54, , 2F
interface @@
09/11 01:54, 2F

09/11 10:13, , 3F
我知道用dynamic binding是在runing time 決定
09/11 10:13, 3F

09/11 10:15, , 4F
但就算有這特性 但何時需要?
09/11 10:15, 4F

09/11 10:19, , 5F
當你需要把具有同操作物件們放進一個陣列裡
09/11 10:19, 5F

09/11 11:49, , 6F
polymorphism
09/11 11:49, 6F

09/11 12:34, , 7F
dynamic binding怎麼會在compilation time決定 反了吧
09/11 12:34, 7F
感謝c大提醒 手殘 已修正@@

09/11 12:38, , 8F
static 就是直接呼叫 dynamic 就是間接呼叫
09/11 12:38, 8F

09/11 12:39, , 9F
多了一層就可以變數化, 把變動封裝在後端, 不影響呼叫端
09/11 12:39, 9F
※ 編輯: nikeasyanzi 來自: 140.113.166.183 (09/11 13:22)

09/11 18:04, , 10F
我認為動態是為了未知的情況做準備
09/11 18:04, 10F

09/11 18:04, , 11F
如果是允許擴充的部分,我認為應該使用動態
09/11 18:04, 11F

09/11 18:05, , 12F
如果是沒辦法擴充但要展現多態,可以用樣板的CRTP
09/11 18:05, 12F

09/12 17:49, , 13F
隨便啦 XXX
09/12 17:49, 13F
文章代碼(AID): #1IBrVddF (C_and_CPP)
文章代碼(AID): #1IBrVddF (C_and_CPP)