C++学习笔记2
类的定义
定义格式
-
使用关键字class来定义类。
class a{ public: int first; }
-
使用struct定义类,兼容C的写法
struct a{ int first; }
访问限定符
- 访问限定符有三个,分别为public,private, protected ,用于设定类的权限。
- private和protected修饰的成员受到保护,无法再类外进行访问,而public则可以在类外进行访问。
- 由class定义的类的成员未修饰时默认使用private , 而struct定义的类则默认使用public。
- 访问权限的作用域直到下一个限定符为止或者类结束。
实例化
实例化概念
- 之前讲到类是一种模板,通过类实例化出各种具体的对象则是实例化。
- 在未进行实例化之前,类没有分配空间,只有在实例化之后,才在内存中分配空间。
对象大小
对象的大小该如何进行计算呢?
- 对象的大小与结构体大小的计算类似,需要遵守内存对齐规则。
- 内存对齐:
- 第⼀个成员在与结构体偏移量为0的地址处。
- 其他成员变量要对齐到对齐数的整数倍的地址处。
- 对齐数 = 编译器默认的⼀个对齐数 与 该成员大小的较小值。
- 结构体总大小: 最大对齐数的整数倍。
this指针
- this指针用于解决不同对象区分的问题。
- 编译器编译后,类的成员函数默认都会在形参第⼀个位置,增加⼀个当前类类型的指针,叫做this指针。
- 类的成员函数中访问成员变量,本质都是通过this指针访问的。