C++ 虚函数表和虚函数表指针的创建时机

一、虚函数表的创建时机

  • 编译器发现类中包含virtual关键字修饰的函数

  • 虚函数表的内容在编译器编译的时候已经生成

  • 虚函数表存放在全局数据区中的只读数据段中

  • 虚函数表是存放虚数的地址的数组

二、虚函数表指针的创建时机

  • 类对象构造的时候,在构造函数,将虚函数表的地址赋值给对象 vptr

  • 如果类没有构造函数,则编译器为类生成默认构造函数,从而为类对象初始化 vptr

  • 继承下,虚函数表指针赋值过程

    调用基类构造函数的时候,先将基类的虚函数表地址赋值给 vptr

    接着调用子类构造函数的时候,又将子类的虚函数表地址赋值给 vptr


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

相关推荐
皮皮林5519 小时前
使用 Java + WebSocket 实现简单实时双人协同 pk 答题
java·websocket
码小凡11 小时前
优雅!用了这两款插件,我成了整个公司代码写得最规范的码农
java·后端
掉鱼的猫13 小时前
Solon AI 五步构建 RAG 服务:2025 最新 AI + 向量数据库实战
java·redis·后端
java金融13 小时前
FactoryBean 和BeanFactory的傻傻的总是分不清?
java·后端
独立开阀者_FwtCoder13 小时前
Nginx 通过匹配 Cookie 将请求定向到特定服务器
java·vue.js·后端
名曰大神13 小时前
AEM6.5集成Redis详细步骤(附代码)
java·redis·demo·aem
带刺的坐椅13 小时前
Solon AI 五步构建 RAG 服务:2025 最新 AI + 向量数据库实战
java·redis·ai·solon·rag
用户6869161349014 小时前
哈希表实现指南:从原理到C++实践
数据结构·c++
东阳马生架构14 小时前
商品中心—7.自研缓存框架的技术文档
java
大老板a14 小时前
c++五分钟搞定异步处理
c++