c++ this 指针

[复制链接]
查看11 | 回复2 | 2010-1-2 23:11:38 | 显示全部楼层 |阅读模式
this是当前类实例的地址,Fish的Test重写Aninmal的test
回复

使用道具 举报

千问 | 2010-1-2 23:11:38 | 显示全部楼层
这就是c++的一个特性,叫多态性。子类有重载的函数优先调用子类的,没有重载的调用父类的 补充下,我说得简单了点。virtual 提供了一个接口供子类实现,必须强制重载。(动态)多态性是出现了继承与重载后就会有的。动态多态性根据指针指向的对象所在类来区别语义,它通过动态联编实现。这样:m_panimal,_fishma,c_son因为它们的类型不同,从而调用各自类所在语境的方法
回复

使用道具 举报

千问 | 2010-1-2 23:11:38 | 显示全部楼层
这是C++中的多态性。同一指针可以在运行时刻对不同继承层次的函数做动态绑定,而你获取到指针的地址是编译时刻静态绑定的,所以C++运用这一特性来实现多态。你说的指针地址一样而调用函数不一样也就是这个原因。参考资料:编译原理

已赞过已踩过<
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行