虚函数,多态

本文详细介绍了C++中虚函数的工作原理,包括vptr和vtable的作用机制、构造函数和析构函数与多态的关系,以及如何正确使用虚析构函数确保派生类资源得到释放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1: Vptr放在对象的第一位,和对象的内存地址一样, 每个继承类会有自己的vptr,并指向自己的vtable, 只有虚函数才会放到vtable中

2: 构造函数中无法应用多态,在实例化时由于先调用基类的构造函数(就是把vtable的地址赋给基类的地址),子类的vtable还没有构成,只能通过赋给的vtable中对调用的表+X.

3: 析构函数一般最好声明为虚函数,以防被继承时,没有声明,导致在delete时,子析构函数没有被调用。

4:vptr放在对象第一位置,即使父类有成员没有虚函数,子类才开始有虚函数,也遵守这一原则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值