第四部分–类和对象

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、关系运算符重载
作用:重载关系运算符,可以两个自定义类型对象进行对比
6、函数代用运算符重载*


