2、构造/析构/赋值运算

07 为多态基类声明virtual析构函数

总结:

在这里插入图片描述

问题:

当析构函数未被声明为virtual时,用基类指针删除子类对象时,可能子类成分未被销毁,而其析构函数也未被执行,但基类成分被执行,造成局部销毁问题,会形成资源泄漏、败坏数据结构等问题

解决办法:

给基类加virtual析构函数,(针对多态的基类,其他基类没有必要)
Virtual: https://blog.csdn.net/u010802169/article/details/88537490

注意:

1、基类虚构函数一般声明为virtual
2、但是其他类不要轻易声明为virtual,因为声明为virtual,会增加额外的空间消耗,且在程序迁移到其他语言时可能因为空间消耗问题遇到阻碍。即不可移植性。
3、string、STL标准容器等各种带有non-virtual析构函数也会导致上述问题

技巧:

当类内含有至少一个virtual函数时,才将其声明为virtual析构函数
创建抽象类,声明纯虚函数,必须有定义,否则连接器报错
在这里插入图片描述
析构函数执行顺序:先子类,再基类

08 别让异常逃离析构函数

总结:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时是石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值