c++语言基础:析构函数为什么要用virtual,static和const

本文探讨了C++中析构函数使用virtual的原因,主要在于避免内存泄漏,确保删除基类指针时能正确调用子类析构函数。同时,文章还详细解释了const和static在修饰变量、函数参数、返回值以及成员函数等方面的作用,阐述了它们如何影响代码行为和内存管理。
摘要由CSDN通过智能技术生成

基类的析构函数为什么要用virtual

与构造函数相反,当对象结束其生命周期,系统自动执行析构函数(如对象所在的函数已调用完毕时)。

析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。

为了避免内存泄漏,而且是当子类中会有指针成员变量时才会使用得到的。也就说虚析构函数使得在删除指向子类对象的基类指针时可以调用子类的析构函数达到释放子类中堆内存的目的,而防止内存泄露的.

(1)如果父类的析构函数不加virtual关键字
    当父类的析构函数不声明成虚析构函数的时候,当子类继承父类,父类的指针指向子类时,delete掉父类的指针,只调动父类的析构函数,而不调动子类的析构函数
(2)如果父类的析构函数加virtual关键字
    当父类的析构函数声明成虚析构函数的时候,当子类继承父类,父类的指针指向子类时,delete掉父类的指针,调动子类的析构函数,调动父类的析构函数

const和static

const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值