c++学习---第四部分上 类和对象

第四部分–类和对象

c++学习---第四部分上 类和对象_第1张图片

4.1 封装

1、封装的意义

c++学习---第四部分上 类和对象_第2张图片

c++学习---第四部分上 类和对象_第3张图片

2、struct和class的区别

c++学习---第四部分上 类和对象_第4张图片

3、成员属性设置为私有

c++学习---第四部分上 类和对象_第5张图片

练习案例

c++学习---第四部分上 类和对象_第6张图片

c++学习---第四部分上 类和对象_第7张图片

4.2 对象的初始化和清理

image-20220730220347227

1、构造函数和析构函数

c++学习---第四部分上 类和对象_第8张图片

c++学习---第四部分上 类和对象_第9张图片

c++学习---第四部分上 类和对象_第10张图片

2、构造函数的分类及调用

c++学习---第四部分上 类和对象_第11张图片

3、拷贝构造函数调用时机

c++学习---第四部分上 类和对象_第12张图片

4、构造函数调用规则

c++学习---第四部分上 类和对象_第13张图片

5、深拷贝和浅拷贝

c++学习---第四部分上 类和对象_第14张图片

浅拷贝带来的问题是堆区内存重复释放

c++学习---第四部分上 类和对象_第15张图片

**总结:**如果属性有在堆区开辟的,一定要自己提供拷贝构造函数,防止浅拷贝带来的问题

6、初始化列表*****

c++学习---第四部分上 类和对象_第16张图片

c++学习---第四部分上 类和对象_第17张图片

7、类对象作为类成员

c++学习---第四部分上 类和对象_第18张图片

c++学习---第四部分上 类和对象_第19张图片

c++学习---第四部分上 类和对象_第20张图片

c++学习---第四部分上 类和对象_第21张图片

8、静态成员

c++学习---第四部分上 类和对象_第22张图片

c++学习---第四部分上 类和对象_第23张图片

c++学习---第四部分上 类和对象_第24张图片

image-20220806221032275

静态函数

c++学习---第四部分上 类和对象_第25张图片

c++学习---第四部分上 类和对象_第26张图片

4.3 C++对象模型和this指针

1、成员变量和成员函数分开存储

c++学习---第四部分上 类和对象_第27张图片

c++学习---第四部分上 类和对象_第28张图片

2、this指针概念

c++学习---第四部分上 类和对象_第29张图片

c++学习---第四部分上 类和对象_第30张图片

c++学习---第四部分上 类和对象_第31张图片

3、空指针访问成员

c++学习---第四部分上 类和对象_第32张图片

4、const修饰成员函数

c++学习---第四部分上 类和对象_第33张图片

4.4 友元

c++学习---第四部分上 类和对象_第34张图片

全局函数做友元:

c++学习---第四部分上 类和对象_第35张图片

类做友元

c++学习---第四部分上 类和对象_第36张图片

c++学习---第四部分上 类和对象_第37张图片

成员函数做友元

c++学习---第四部分上 类和对象_第38张图片

4.5 运算符重载

image-20220808214255018

1、加号运算符重载

作用:实现两个自定义数据类型相加的运算

c++学习---第四部分上 类和对象_第39张图片

c++学习---第四部分上 类和对象_第40张图片

c++学习---第四部分上 类和对象_第41张图片

c++学习---第四部分上 类和对象_第42张图片

总结1:对于内置的数据类型的表达式的运算符是不可能改变的

总结2:不要滥用运算符重载

2、左移运算符重载

作用:可以自定义输出类型

c++学习---第四部分上 类和对象_第43张图片

c++学习---第四部分上 类和对象_第44张图片

总结:重载左移运算符配合友元可以实现输出自定义数据类型

3、递增运算符重载

作用:通过重载递增运算符,实现自己的整型数据

c++学习---第四部分上 类和对象_第45张图片

c++学习---第四部分上 类和对象_第46张图片

c++学习---第四部分上 类和对象_第47张图片

**总结:**前置递增返回引用,后置递增返回值

4、赋值运算符重载

c++学习---第四部分上 类和对象_第48张图片

c++学习---第四部分上 类和对象_第49张图片

c++学习---第四部分上 类和对象_第50张图片

c++学习---第四部分上 类和对象_第51张图片

5、关系运算符重载

作用:重载关系运算符,可以两个自定义类型对象进行对比

6、函数代用运算符重载*

c++学习---第四部分上 类和对象_第52张图片

c++学习---第四部分上 类和对象_第53张图片

c++学习---第四部分上 类和对象_第54张图片

你可能感兴趣的:(c++学习,c++,学习,开发语言)