类的访问限定符
类有三个访问限定符,public(公有),protected(保护),private(私有)
说明:
1.public修饰的成员在类外可以被直接访问
2.protected与private修饰的成员在类外不能被访问
3.访问限定符的作用域是从访问限定符出现的位置为始,到下一个访问符出现为止
4.若后面没有其他限定符,作用域到}结束,即类的结束
5.class默认访问权限为private,struct默认访问权限为public(因为要兼容C语言)
6.访问限定符只在编译时有用
类的封装
封装的定义:将数据与操作数据的方法有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象交互
封装本质上是一种管理,让用户更方便地使用类
类的作用域
类定义了一个新的作用域,即类域
在类外定义成员函数时,要使用::作用域操作符来指明成员属于哪个类域
类的实例化
用类类型创建对象的过程,称为类的实例化
1.类是对对象进行描述的,是一个模型一样的东西,定义出一个类并没有分配实际的内存空间来储存它
2.一个类可以实例化出多个对象,实例化出的对象,占用实际的物理空间,储存类的成员变量
3.类像是房子的设计图纸,而类实例化出的对象就像用设计图纸严格设计出的房子
类对象的模型
1.类的大小
类的大小实际上该类中成员变量的和(存在内对齐)
而空类比较特殊,编译器给了空类一个字节来唯一标识这个类的对象
2.结构体的内对齐规则
>>第一个成员变量在与结构体偏移量为0的位置
>>其他成员变量要对齐到与对齐数的整数倍地址处
(对齐数:编译器默认对齐数,与成员变量大小的较小值)
>>结构体的总大小为最大对齐数(所有成员变量的对齐数都是取成员变量大小,与默认对齐数的较小值)的整数倍
>>如果嵌套了结构体,嵌套的结构体对齐到该结构体最大对齐数的整数倍数