多态与虚函数表

是什么

同一操作可以根据对象的类型产生不同的行为

ps: C++能够 0成本抽象

为什么

灵活, 可拓展, 简化代码

怎么样

  1. 在父类函数前加virtual, 在子类中重写这个虚函数. 我们都用父类的指针来指向 new出的不同种类的对象. 此时这个指针很神通广大, 当调用父类的方法时, 会根据子类的种类来调用其函数.

  2. 使用了虚函数表:

  • 每个类都有一个虚函数表, 子类继承父类, 会产生一个新的虚函数表, 但子类虚函数地址还是父类的那个. 重写虚函数, 派生类虚函数表中才放重写的新地址.

  • 每new一个对象, 如果有virtual就会产生一个虚函数指针, 指向对应的虚函数表.

https://zhuanlan.zhihu.com/p/563418849

posted @   Loong_vyg  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示