C++-多态性

多态性是面向对象编程的重要特性,分为静态多态(编译时绑定)和动态多态(运行时绑定)。C++中的动态多态通过虚函数实现,包括虚函数的意义、特性以及虚析构函数的作用。同时,抽象类和纯虚函数允许创建没有实例的基类,作为派生类的接口。运行时类型信息(RTTI)如dynamic_cast和typeid则提供了运行时识别对象类型的能力。
摘要由CSDN通过智能技术生成

多态性是面向对象程序设计语言的又一重要特性,是指不同对象接收到同一消息时会产生不同的行为。继承处理的是类与类之间的层次关系,多态则是处理类的层次结构之间以及同一个类内部同名函数的关系。简单说,多态就是在同一个类或继承体系结构的基类与派生类中,用同名函数来实现不同的功能。

1、静态绑定和动态绑定

多态(Polymorphism)就是指不同对象收到相同消息时会执行不同的操作。也就是用一个相同名称定义许多不同的函数,这些函数可以针对不同数据类型实现相同或相似的功能,即所谓的一个接口,多种实现。

多态性与联编密切相关。一个源程序需要经过编译、连接才能形成可执行文件,在这个过程中要把调用函数名与对应函数关联在一起,这个过程就是绑定(binding),又称为联编。

绑定分为静态绑定和动态绑定。

静态绑定:即静态联编,指在编译程序时根据调用函数提供的信息,把它所对应的具体函数确定下来,即在编译时就把调用函数名与具体函数绑定在一起。

动态绑定:即动态联编,指编译时还不能确定函数调用所对应的具体函数,只有在程序运行过程中才能够确定函数调用所对应的具体函数。

C++中这两种都可以实现多态性,静态多态性是通过函数重载和运算符重载在编译时通过静态绑定实现的;动态多态性是通过继承和虚函数在程序执行时通过动态绑定实现的。

平常所说的面向对象程序设计的多态性常指运行时的多态性。
静态多态性执行速度快;动态多态性在执行时需要从多个同名函数中匹配调用函数,所以比静态多态性的执行效率低,但提供了更多的灵活性、问题的抽象性和程序的可维护性。

2、虚函数

2.1、虚函

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值