C++成员种类
数据成员:
- 静态数据成员:存储在程序的数据段中,C++编译器会对不同类的静态数据成员采取特殊的编码方式。
- 非静态数据成员:需要地址偏移
成员函数: - 静态函数
- 非静态函数
- 虚函数
数据类型的内存大小
string:28 byte
类的对象内存模型
类对象:
非静态数据成员:
大小:n byte
虚函数指针Vptr:
大小:4/8 byte
概念:vptr指向虚函数表
虚函数表的结构:
type_info for Point:所指对象的类型,用于运行时类型识别(RTTI)
指向虚函数的指针
基类对象的数据成员:
基类的非静态数据成员大小:n byte
类共享:
静态数据成员
非静态/静态成员函数
其它
- 空类大小默认为1
- 类遵循内存对齐原则