c++对象模型

一、C++成员函数在内存中的存储方式


二、虚函数表
编译器处理虚函数的方法是:为每个类对象添加一个隐藏成员,隐藏成员中保存了一个指向函数地址数组的指针,称为虚表指针(vptr),这种数组成为虚函数表(virtual function table, vtbl),即,每个类使用一个虚函数表,每个类对象用一个虚表指针

如果派生类重写了基类的虚方法,该派生类虚函数表将保存重写的虚函数的地址,而不是基类的虚函数地址。

如果基类中的虚方法没有在派生类中重写,那么派生类将继承基类中的虚方法,而且派生类中虚函数表将保存基类中未被重写的虚函数的地址。注意,如果派生类中定义了新的虚方法,则该虚函数的地址也将被添加到派生类虚函数表中



三、虚函数调用过程


四、 多重继承


本文引用:  https://www.cnblogs.com/alone-striver/p/7875741.html
如果有侵权,告知后立即删除

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一个博客,这个博客记录了他读这本书的笔记,总结得不错。《深度探索C++对象模型》笔记汇总 1. C++对象模型与内...
    Mr希灵阅读 5,616评论 0 13
  • 前言 这本书是之前京东做活动买的很多本书中的一本(主要阅读时间是周末、每天早上起来吃早餐的时候,以及下班回来时候,...
    ampire_dan阅读 1,249评论 0 1
  • C++对象模式都有什么?常用的C++对象模型有什么优缺点? C++对象模式有三种:简单对象模型、表格驱动对象模型、...
    Drama_Du阅读 1,933评论 0 0
  • 七十二健儿,酣战春云湛碧血; 四百兆国子,愁看秋雨湿黄花。
    干土阅读 298评论 0 0
  • 2108.06.21.卷 复盘第221天 与人为师 与其说跟女领导出差,不如确切的说是请女领导出面帮忙协调。收...
    卷Jane阅读 547评论 0 0