第50课.c++对象模型分析(上)
1.class分析
a.class是一种特殊的struct
b.在内存中class依旧可以看做变量的集合
c.class与struct遵循相同的内存对齐规则
d.class的成员函数与成员变量是分开存放的
1).每个对象有独立的成员变量
2).所有对象共享类中的成员函数
2.对象分析
a.运行时的对象退化为结构体的形式
b.所有成员在内存中依次排布
c.成员变量间可能存在内存空隙
d.可以通过内存定制直接访问成员变量(即使是私有的)
e.访问权限关键字在运行时失效(d和e类似于const)
3.类中的成员函数
a.类中的成员函数位于代码段中
b.调用成员函数时对象地址作为参数隐式传递(this)
c.成员函数通过对象地址访问成员变量
d.c++语法规则隐藏了对象的传递过程
类中不会给this指针分配空间,即sizeof(ClassName)时不计算this指针的空间