C++类和对象: 计算类的大小

 

1. 对象存储规则

类实例化出的对象, 有成员变量和成员函数, 它们是存储在对象的?

实际上, 只有非静态的成员变量存储在对象中, 而成员函数是存储在公用代码段中, 如下图

现在知道了成员变量存储在对象中, 成员函数在公用代码段, 那么成员变量在内存中是如何存储的

对象中的成员变量在存储时需要遵守内存对齐的规则

下面用代码证明

#include <iostream>
using namespace std;
class obj
{
void _print()
{
cout << "test" << endl;
}
char _ch;
int _a;
};
int main()
{
// 计算类 = 计算类的对象
obj obj1;
printf("%d\n", sizeof(obj));
printf("%d\n", sizeof(obj1));
}

如图, 在计算类时, 只计算了类(对象)中的成员变量的大小, 因为成员函数在公用代码段

最后打印出的8证明成员变量在存储时遵守内存对齐

2. 计算空类

一个没有成员的类, 大小是多少?

如图, 结论是1字节, 空类大小为一个字节是为了占位不存储有效数据

posted @   许木101  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示