Re: C++繼承的問題
※ 引述《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
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章