C++ 虚析构函数的作用?

一、作用:

在继承下,为了使子类析构函数能得到正常调用,需要将基类的析构函数设置为虚析构函数

二、什么场景下?

子类对象指针赋值给基类指针,在调用析构函数的时候,子类对象的析构函数得不到调用

三、为什么设计?

  • 在 C++ 看来,我们设计某个类,不一定是基类

  • 如果该类是基类,我们应该手动将基类的析构函数设置为虚函数

  • 设置虚析构函数是有代价的,编译器会为类生成虚函数表,每个对象都需要持有 vptr


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/VsFMs

猜你喜欢

转载自blog.csdn.net/qq_40135848/article/details/132922873