C++中的虚函数与多态性
来源:互联网 发布:hadoop安装教程windows 编辑:程序博客网 时间:2024/06/05 05:40
场景交代:
基类animal中有“呼吸”动作的处理函数breathe()。基类的breathe()前面加上一个virtual关键字给该函数声明成虚函数
派生类fish继承基类animal同时重写了“呼吸”动作的处理函数breathe()
这就是C++中的多态性。当C++编译器在编译的时候,发现animal类的breathe()函数是虚函数,这个时候C++就会采用迟绑定(late binding)技术。也就是编译时并不确定具体调用的函数,而是在运行时,依据对象的类型(在程序中,我们传递的fish类对象的地址)来确认调用的是哪一个函数,这种能力就叫做C++的多态性。我们没有在breathe()函数前加virtual关键字时,C++编译器在编译时就确定了哪个函数被调用,这叫做早期绑定(early binding)。
C++的多态性是通过迟绑定技术来实现的,关于迟绑定技术,读者可以参看相关的书籍,在这里,我们就不深入讲解了。
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。
- c++--多态性与虚函数
- [C++] 多态性与虚函数
- C++中的虚函数与多态性
- C/C++中多态性与虚函数
- C++__多态性与虚函数
- 多态性与虚函数
- 多态性与虚函数
- 多态性与虚函数
- 多态性与虚函数
- 多态性与虚函数
- 虚函数与多态性
- 多态性与虚函数
- 多态性与虚函数
- 虚函数与多态性
- 多态性与虚函数
- 多态性与虚函数
- 虚函数与多态性
- 多态性与虚函数
- 09年经典网络营销案例
- 设置centos5.3 yum源
- 1000瓶酒与老鼠的问题
- ArcGIS Server 9.3部署时碰到的部分问题
- 获取SQL Server元数据的几种方法
- C++中的虚函数与多态性
- n70提示存储卡已坏,但在电脑上有读卡器能识别
- 纯 JS FCKEditor 输入验证
- C#创建Windows服务(Windows Services) 实战之系统定时重启服务
- UE使用技巧
- 远程连接局域网内的sql server 无法连接 错误与解决方法
- JavaScript + Flash实现幻灯式广告
- 关于素数
- c#日期到字符串转换