目录
C++中结构体升级成为类
类中除了有成员变量还有成员函数
类的定义
class myclass
{
//内容
};
注意结尾要加分号
成员函数可以直接写在类体里, 也可以在头文件中声明,在.cpp文件中定义
class myclass
{
public:
void show()
{
cout << _name << ' ' << _age << ' ' << _sex << endl;
}
private:
char* _name;
char* _sex;
int _age;
};
注意要加作用域限制符!
访问限定符
public - 公有的
private - 私有的
计算类的大小
类的大小只计算成员变量, 不计算成员函数
成员函数存放在公共代码区
结构体的对齐方式
1. 第一个成员在与结构体偏移量为0的地址处。
2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。
注意:对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。
VS中默认的对齐数为8
3. 结构体总大小为:最大对齐数(所有变量类型最大者与默认对齐参数取最小)的整数倍。 4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是 所有最大对齐数(含嵌套结构体的对齐数)的整数倍。
this指针
成员函数传参时 编译器会自动传一个指针, 用来找到 要操控的类(对象)
this指针有编译器自动传参
this指针可以为空指针
指针的值不可变,其指向的对象可变