返回信息流如果往一个系统中添加一个新类(继承系统中已有的基类),已有基类中定义一个虚拟函数draw(),新类中对这个方法进行改写,不经过编译就可以通过基类指针调用draw()方法,从而动态绑定到新类中改写后的方法吗?
请达人指教
这是一条镜像帖。来源:北邮人论坛 / cpp / #38157同步于 2010/4/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请教 关于C++中的动态绑定
marryland
2010/4/18镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
不经过编译怎么可能
【 在 marryland (灰原哀) 的大作中提到: 】
: 如果往一个系统中添加一个新类(继承系统中已有的基类),已有基类中定义一个虚拟函数draw(),新类中对这个方法进行改写,不经过编译就可以通过基类指针调用draw()方法,从而动态绑定到新类中改写后的方法吗?
: 请达人指教
动态绑定不是说不经过编译
是说在编译期不确定调用哪个函数。而要到了运行期才知道。因为编译器只能确定这个指针的静态类型,不知道实际的类型
只有在运行期,取到虚表指针,才知道调用哪个。