一、类和对象
1.本章概要
2.C++中的结构体(struct与class) 升级为类
(1)类及成员函数的两种定义方式
声明与定义分离
(2)权限
注意1:struct/class在权限上的区别
(3)封装
(4)作用域
(5)创建对象
(6)对象大小的计算与存储
注:此处是方式3即成员函数放在公共代码区,非类的内部
注意1:内存对齐的主要原因包括
- 平台和移植性。不同的硬件平台可能对内存访问有特定的要求。某些硬件平台只能访问特定地址处的特定类型数据,如果数据未对齐,可能导致硬件异常或性能下降。
- 性能。为了提高访问速度,对齐数据可以使处理器更高效地加载数据,减少因数据跨越多个内存页或缓存行而导致的额外访问时间。
- 存储空间优化。内存对齐有助于减少内存碎片,提高内存利用率,使结构体或对象的大小更加紧凑,节省内存空间。
- 访问效率。内存对齐使得处理器可以一次访问获取所需数据,而不是进行多次访问。
- 硬件IO特性。内存的IO操作通常以特定的数据宽度(如64位)为单位进行,因此内存对齐对于提高IO效率至关重要。
注意2:空类大小
(7)this指针
1、特性及本质
2.受this影响下C/C++的对比
二、类中的函数与操作符重载
1.本章概要
2.六个默认成员函数
(1)构造函数
注意1:当手动实现该函数时,保证其函数与类名相同,具体参数、函数体视具体情况定
注意2:可以重载是因为可能有多种初始化的方式
注意3:何时适合自己写,何时无需自己写
(2)析构函数
注意1:何时适合自己写,何时无需自己写
(3)拷贝构造函数
注意1:深拷贝,深拷贝必须自己实现,要与默认的生成的浅拷贝区分
三、总结:1.注意析构/构造何时需自己写,何时不需。2.注意拷贝构造有深浅拷贝之分。3.注意内置数据类型与自定义数据类型对三种函数的影响4.一般“内置”“动态申请需手动释放”的需要自己实现,相反则不需
四、赋值等运算符的重载
注意1:赋值运算符重载是默认生成的,其他如大于小于则不是
五、const成员函数
六、(const)取地址运算符重载
注意:同之前的默认成员函数一样是默认的、也不可重载成全局函数,不常用
七、Date类实现与本章知识点运用