Re: C++繼承的問題

看板Programming作者 (Alien)時間18年前 (2008/02/11 15:04), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串4/5 (看更多)
※ 引述《sorryChen (陳揚和)》之銘言: : 請問不管幾層都可以嗎 只要是public 繼承就可以override到? 應該不需要 public inheritence 也可以 override 吧 : 而且就compiler設計來說還需要滿小心的... : 因為compiler必須要記得我是從A call的 當他運行到C的行駛中要call加速的時候 : 他必須去CAll 在 A新定義的加速而不是在C定義的..如果有很多層的話 : 就代表族譜中所有的符號都要被記得 且要非常明確到底是從哪層call起的 : 要是在有個recursive的話就更複雜了.. 實作的方法方面, 究竟要 invoke 哪一個, 並 不是由 compiler 決定的 (compiler 也決定不了) 看書大都會有提到 virtual function pointer table 之類的東西. : 而且會不會不小心第一個新function和祖父輩的同名 就會不小心被call到.. : 例外 要是有些地方不想被override..有些想 也是很複雜 這些不小心也真的蠻麻煩的... 所以有不少 language 都已經加了 override 時要特定註明的 syntax, 但 C++ 應該還是無解吧... (除非等 C++0x? ) Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

02/11 15:52, , 1F
感謝高手解說
02/11 15:52, 1F
文章代碼(AID): #17h_DpiH (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):
文章代碼(AID): #17h_DpiH (Programming)