C++ 动态绑定

动态绑定是C++中实现多态的一种形式,主要通过虚函数表在运行时确定函数版本。其优点包括提高代码可用性和灵活性,支持设计模式,降低耦合性。缺点则涉及性能损失和额外存储需求。具体实现时,当使用基类引用或指针调用虚函数,会根据对象实际类型找到对应函数地址。
摘要由CSDN通过智能技术生成

定义

动态绑定是在运行期间发生的绑定,发生动态绑定的函数的运行版本由传入的实际参数类型决定,在运行时觉得函数的版本,所以动态绑定又称运行时绑定,动态绑定是C++的多态实现的一种形式。

在C++中,当使用基类的引用或指针调用一个虚函数时将发生动态绑定。

实现原理

C++中的动态绑定通过虚函数实现。而虚函数是通过一张虚函数表(virtualtable)实现的,拥有虚函数的类在实例化时会创建一张虚函数表。这个表中记录了虚函数的入口地址,当派生类对虚函数进行重写时,虚函数表中相关虚函数的地址就会被替换,以保证动态绑定时能够根据对象的实际类型调用正确的函数。

优点

1、能够提高代码的可用性,使代码更加灵活。
2、多态是设计模式的基础,能够降低耦合性。

缺点

1.需要查找虚函数表来,性能比静态函数调用低。
2.虚函数表本身需要存储空间

实例

class base {
   
public:
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值