作者adrianshum (Alien)
看板Programming
标题Re: C++继承的问题
时间Mon Feb 11 15:04:18 2008
※ 引述《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
1F:→ sorryChen:感谢高手解说 128.125.87.33 02/11 15:52