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字节, 空类大小为一个字节是为了占位不存储有效数据
标签:存储,变量,对象,成员,代码段,内存,计算,大小 From: https://www.cnblogs.com/xumu11291/p/17360934.html