1 访问权限
用public修饰的成员可以在类外访问,用private和protected修饰的成员在类外不能访问。
class与struct的区别 :class中的默认访问权限是private,struct中的成员的默认访问权限是public。
2 计算类对象的大小
类的大小只包含成员变量的大小,而不包括成员函数,成员函数放在公共的代码区。
计算时遵循内存对齐规则:
1)第一个成员的偏移量为0
2)其他成员都有一个对应的对齐数,且存储的时候要对齐到对齐数的整数倍上,其中对齐数是 编译器的对齐数 和该变量成员大小中的较小值
3)结构体总的大小应该是最大对齐数的整数倍(所有成员变量的对齐数的最大值)
4)如果某一个成员为自定义类型,该成员的对齐数为其成员变量的最大对齐数。
3 this指针
指向非静态成员的隐藏的指针,用于区分不同的实例对象。
1)this指针的类型为 类类型* const 即this指针的指向不能改变
2)只能在成员函数内部
3)是成员函数的第一个隐式的形参,在对象调用成员函数的时候编译器自动的将对象的地址作为实参传递给成员函数的第一个形参,this不是成员变量。