您的位置:首页 > 编程语言 > C语言/C++

C++::多态那点事~~

2016-12-11 20:40 260 查看
首先我们先来了解下对象模型:

【对象模型】:



eg:






接下来我们进入多态的世界:

【多态】

一、多态的定义:

       多态:“一个接口,多种方法”,具有多种形式多种形态指的是指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。

二、多态的分类



1、静态多态:

1)静态多态设计思想:对于相关的对象类型,直接实现它们各自的定义,不需要共有基类,甚至可以没有任何关系。只需要各个具体类的实现中要求相同的接口声明,这里的接口称之为隐式接口。客户端把操作这些对象的函数定义为模板,当需要操作什么类型的对象时,直接对模板指定该类型实参即可(或通过实参演绎获得)

2)静态多态的实现:

编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用哪个函数,如果有对应的函数就调用对应的,如果没有,编译器就会报错。

2、动态多态

1)动态绑定:在程序执行期间判断所引用对象的实际类型,根据实际类型调用相应的方法

2)实现:利用虚函数实现
3)具体实现动态绑定的条件:
 A:基类的函数必须是虚函数
 B:必须通过基类的引用或者指针来调用虚函数
最后我附一张继承体系中同名成员函数关系的图:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: