首页 > 其他分享 >0001-虚函数和虚表笔记

0001-虚函数和虚表笔记

时间:2023-06-05 19:57:50浏览次数:47  
标签:虚表 0001 Object 笔记 vptr 编译器 指针 函数

目录

    1. 一个空对象至少占用1字节的空间
      展开查看:原因是在栈上分配2个对象时,要区分地址
      
         class Object { };
         void Function () { 
            Object o1, o2; // 需要区分o1,o2的地址
         }
      

    1. 空类有虚函数,需要占用一个指针的空间,即:编译器会插入一个虚函数表指针vptr

    1. 有虚函数指针,就意味着有虚函数表
      编译期时,编译器会把虚表指针赋值,安插在类中,Object::vptr=&Object::vftable
      这个过程是背着程序员进行的
      编译器充当地址管理器的角色

    多继承下的虚表

    1. 虚函数表会被编译进可执行文件.o或动态库.so中,运行时会被加载到内存页中

    标签:虚表,0001,Object,笔记,vptr,编译器,指针,函数
    From: https://www.cnblogs.com/majiao61/p/17455196.html

    相关文章

    • [学习笔记]计算机网络_物理层_传输介质
      双绞线、同轴电缆、光纤与无线传输介质双绞线双绞线的价格便宜,是最常用的传输介质之一,在局域网和传统电话网中普遍使用。模拟传输和数字传输都可以使用双绞线,其通信距离一般为几千米到数十千米。距离太远时对于模拟传输要用放大器放大衰减的信号;对于数字传输,要用中继器将失真......
    • 动力节点最新Java零基础笔记-③Java基础语法
      标识符(掌握)什么是标识符在Java中,标识符是用来给变量、方法、类和包等命名的字符序列。标识符由字母、数字、下划线和美元符号组成,但是第一个字符必须是字母、下划线或美元符号。标识符不能包含空格或其他特殊字符,也不能与Java关键字相同。标识符的长度没有限制,但是建议使用有意......
    • Python学习的个人笔记
      python基础知识目录:Python基础语法:(1)打印出helloworld(2)注释(3)数据类型(4)运算(5)输入(6)输出(7)序列(8)相等比较(9)选择(10)循环(11)字典(dict)(12)集合(set)(不常用)(14)pass,del,exec,eval(15)内建函数Python进阶语法:(1)文件(2)错误和异常(3)模块和包(4)作用域(5)高阶函数(6)装饰器(7)参数(8)面......
    • CF做题笔记
      CFR876D-BallSorting首先不考虑小球的数量,假设有充足的小球,要求最少的移动次数,我们只需要拿出序列的最长上升子序列,这就是始终不会移动的小球的数量。加上小球数量的限制。设始终不会移动的小球的集合为\(S\),显然集合需要满足单调上升,它们将整个序列分为\(f(S)\)段,那么......
    • 002 数据库学习笔记
      约束:规定表中的数据规则的一种方式。数据必须规范,如果违法约束行为,则无法被执行。注:建表前,建表后,都可以创建约束。约束分类:主键、外键、Unique约束、Check约束、Default约束主键:Primarykey约束;唯一、非空、不可修改;外键:Foreiignkey约束,加强两张表中的一列或多列数据......
    • [学习笔记]数据结构_线性表_顺序表and单链表
      线性表线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构,两者属于不同层面上的概念。线性表的基本操作boolInitList(&L)//初始化表,构造一个空的线性表intLength(L)//求表长。返回线性表L的长度,即L中数据元素的个数intLocateElem(L,e)//按......
    • Achieving a Better Stability-Plasticity Trade-off via Auxiliary Networks in Cont
      摘要连续学习过程中的稳定性-可塑性权衡是一个重要的问题。作者提出了AuxiliaryNetworkContinualLearning(ANCL),通过auxiliarynetwork提高了模型的可塑性。方法TheFormulationofAuxiliaryNetworkContinualLearning传统的continuallearning方法通常是在新数据集上......
    • Java学习笔记(十四)
      1.请描述你理解的IO流的作用 I/O流(输入/输出流)的作用是在程序与外部世界(例如文件、网络、控制台等)之间传输数据。2.请描述I/O流的体系结构(1)InputStream类和OutputStream类,其实现类:FileInputStream和FileOutputStream(2)Reader类和Writer类,其实现类:FileReader和FileWriter(3)缓......
    • pyqt5笔记-菜单与工具栏
      目录主窗口状态栏动作组合菜单栏子菜单勾选菜单右键菜单工具栏关闭当前窗口和结束应用程序主窗口QMainWindow就是主窗口,QMainWindow提供了更多的特性,如菜单栏、工具栏、状态栏和停靠窗口等,它是为复杂的主窗口应用设计的。QMainWindow继承自QWidget,所以QMainWindow不仅可以......
    • 笔记: 解决Win11控制台乱码
      控制台乱码的原因是因为中文windows命令行默认编码页是gb2312,想输出中文只要把控制台的编码页修改成Unicode就可以了。在cmd里输入chcp65001再运行程序......