找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 118|回复: 0

C++空基类优化_在32位的系统中占用空间的大小。

[复制链接]

130

主题

44

回帖

3万

积分

管理员

积分
39544
发表于 2025-11-29 09:17:46 | 显示全部楼层 |阅读模式
#include <iostream>
struct Base{};   //占用字节为1, 每个对象必须有一个唯一的内存地址。 这个字节用来满足唯一地址的要求来填充。      
struct Derived:Base{ //占用字节为4,因为有空基类优化技术, 空基类在派生类中不占用任何的空间。 派生类会重叠空基类的那一个字节
int x;
};
struct BaseVirtual{ //所有的虚函数都在一个4个字节的虚函数表里面。 而函数存在于代码段,而不是内存布局中。   
virtual void foo(){}
virtual void bar(){}
void xxx(){} //
};
struct DerivedVirtual:BaseVirtual{ //子类继承了父类, 父类有4个字节,子类也有四个字节,加起来就是8个字节。   
int x;
};
我知道答案 回答被采纳将会获得 10 金钱 已有0人回答
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|flightreview|小黑屋|PX4-Autopilot|PX4论坛

GMT+8, 2026-1-27 07:24 , Processed in 0.059731 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表