Effective C++记录(7):Declare destructors virtual in polymorphic base classes

本文探讨了C++中多态基类为何需要声明virtual析构函数的原因,解释了当基类析构函数非虚时派生类对象可能无法完全销毁的问题。同时指出,只有在类设计预期用于继承或多态时,才应包含virtual析构函数,否则不应声明。这有助于优化内存管理和避免潜在的内存泄漏。
摘要由CSDN通过智能技术生成

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

        1. 使用基类指针指向派生类对象,进行delete释放,当基类析构函数非虚函数时,派生类中的析构函数将不会进行调用,导致出现局部销毁问题。

        2. 在明确使用或创建的类不会被进行派生时,则该类中不应该出现virtual函数,会增加对象体积大小。

书记

a.带多态性质的基类应该声明一个virtual析构函数。如果类中带有任何virtual函数,塔就应该有一个virtual析构函数。

b.类的设置目的如果不是作为基类使用,或者不是为了具备多态性,就不该声明virtual析构函数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值