思考:虚函数的调用方式

1.实验名称

1.虚函数的调用方式是和普通函数一样 还是通过虚表调用?

2.实验目的 

探究不同情况下 虚函数的调用方法

3.实验环境 

Vistual Studio2022 x86  Debug

4.实验方法

(1)通过控制变量(是否是虚函数  是否是指针/引用对象)进行对比

(2)通过汇编进行比较

完整代码

1.普通对象+成员函数

2.普通对象+虚函数

 

3.指针/引用对象+普通函数

4.指针/引用对象+虚函数 

 

1 2我们可以看出   无论是否设计切片 普通对象无论是调用函数还是虚函数是一样的

3 4我们可以看出  无论是否涉及切片 指针/引用对象无论虚函数是否被重写   都会通过虚表指针访问虚表调用

2 4我们可以看出   只有指针对象才会通过虚表指针去得到虚函数地址去调用虚函数

5.实验结论

是否通过虚表指针访问虚表得到虚函数地址去调用虚函数   要满足以下条件:

(1)指针/引用对象

(2)调用的是虚函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值