C++学习笔记(更新……)

本文详细介绍了C++中类与对象的内存布局原理,包括空类占用的空间、虚函数表的存储方式及其对类大小的影响,以及如何通过虚基类解决菱形继承带来的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 空类占空间:1

  2. 类中只存储普通成员变量(非static),成员函数和static变量存在全局,对象调用函数的时候相当于传一个this指针进去。

  3. 类中如果有虚函数,空间增大一个地址的单位:4(32位) / 8(64位)。全局中每个类都有一个虚函数表,按顺序放着类中所有虚函数的地址(先放父类,再放子类)。类中只存一个表的入口,所以不管有几个虚函数,类占的空间都只增大1。
    如果子类没有重写父类的虚函数,就用父类定义的。

    多态的实现就是到每个类自己的虚函数表中的相同位置找到名字相同存储位置不同的函数去调用。

    纯虚函数,如 virtual void funtion1()=0 ,在子类中必须重写。有纯虚函数的类不能实例化。

  4. 虚基类用于菱形继承,防止存了多份祖父类的成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值