一、作用:
在继承下,为了使子类析构函数能得到正常调用,需要将基类的析构函数设置为虚析构函数
二、什么场景下?
子类对象指针赋值给基类指针,在调用析构函数的时候,子类对象的析构函数得不到调用
三、为什么设计?
- 在 C++ 看来,我们设计某个类,不一定是基类
- 如果该类是基类,我们应该手动将基类的析构函数设置为虚函数
- 设置虚析构函数是有代价的,编译器会为类生成虚函数表,每个对象都需要持有 vptr
推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/VsFMs