第四部分–类和对象
4.1 封装
1、封装的意义
2、struct和class的区别
3、成员属性设置为私有
练习案例
4.2 对象的初始化和清理
1、构造函数和析构函数
2、构造函数的分类及调用
3、拷贝构造函数调用时机
4、构造函数调用规则
5、深拷贝和浅拷贝
浅拷贝带来的问题是堆区内存重复释放
**总结:**如果属性有在堆区开辟的,一定要自己提供拷贝构造函数,防止浅拷贝带来的问题
6、初始化列表*****
7、类对象作为类成员
8、静态成员
静态函数
4.3 C++对象模型和this指针
1、成员变量和成员函数分开存储
2、this指针概念
3、空指针访问成员
4、const修饰成员函数
4.4 友元
全局函数做友元:
类做友元
成员函数做友元
4.5 运算符重载
1、加号运算符重载
作用:实现两个自定义数据类型相加的运算
总结1:对于内置的数据类型的表达式的运算符是不可能改变的
总结2:不要滥用运算符重载
2、左移运算符重载
作用:可以自定义输出类型
总结:重载左移运算符配合友元可以实现输出自定义数据类型
3、递增运算符重载
作用:通过重载递增运算符,实现自己的整型数据
**总结:**前置递增返回引用,后置递增返回值
4、赋值运算符重载
5、关系运算符重载
作用:重载关系运算符,可以两个自定义类型对象进行对比