C++编程笔记:C++用new与不用new创建对象的区别( 三 )
而如果是虚函数就会占用空间了 。
结果是占用12 byte的大小 。
这种的差别是由于c++的类所有的虚函数都是由一个虚函数指针所管理 , 它的虚函数被放在别的内存空间中管理 。 而普通函数是由this指针所管理 , this指针并不是对象本身的一部分 , 所以不会影响到sizeof的结果 。
2.2 一些有趣的现象
(1)空类的sizeof为1
(2)只有一个char的类的大小为1
(3)当有一个为char , 另一个是虚函数或者int类型成员变量 , 会出现对齐现象 , 大小为8 。 对齐现象很有意思 , 它的规则是:以最长的变量长度为对齐长度 。
long long为8 byte , 所以总共占用16 byte 。
在分析完各种情况之后 , 只有第一个的结果显得特别诡异 , 为什么空类的大小不是0 , 而是1?
推荐阅读
- 游戏笔记本|Dota2-今天又是玛西被削的一天?水友:强度太高,还得接着削!
- 森林之子|双十一性价比风暴来袭,这些性能强劲的笔记本不容错过
- 黑神话|解析《黑神话:悟空》技术看点,RTX 30系笔记本带来极致体验
- 笔记本|红米G笔记本香爆?5000元大作全安排!玩家:这就整超激斗梦境
- 梦幻西游|梦幻西游:找到了当年记录账号的笔记,因为它还被父母混合双打过
- 单机|老旧笔记本轻松畅玩,10款超低配置的经典单机
- 元气骑士|经费炸裂!《元气骑士》新角色比死亡笔记更强,比司铎团更加惊艳
- 地下城与勇士|DNF:韩服6.21开发者笔记,刃影太刀物理固伤,神话合成系统出现
- 国服|第五人格:联动“死亡笔记”?一颗红苹果的期待却与国服彻底绝缘
- Java|Java 地位不保,落后已成定局 ?| 10月编程语言排行