概述
1.数组类封装
1.1 提供一个int类型数组
1.2 属性
1.2.1 int *pAddress 设置堆区数组指针参数
1.2.2 int m_Capacity 设置数组容量参数
1.2.3 int m_Size 设置数组大小参数
1.3 行为
1.3.1 添加一个默认构造函数
1.3.2 添加一个有参构造函数
1.3.3 添加一个拷贝构造函数
1.3.4 尾插接口函数
1.3.5 根据位置设置数据接口函数
1.3.6 根据位置获取数据接口函数
1.3.7 获取数组容量接口函数
1.3.8 获取数组大小接口函数
1.3.9 添加一个析构函数
2.加号运算符重裁
2.1 对于内置数据类型 , 编译器知道该如何进行运算
2.2 但是对于自定义数据类型 ,编译器并不知道该如何运算,
2.3 利用运算符重载 可以解决问题
2.4 实现两个 A 数据类型相助
2.5 分别利用成员函数和全局函数来做实现。
2.5.1 成员函敞本质p1.operator+( p2)
2.5.2 全局函数本质operator+(p1,p2)
2.5.3 简化为p1 +p2
2.6 运算符重载 也可以发生函数重载。
3.左移运算符重载+
3.1 对于内置数据类型 , 编译器知道如果cont 进行<<运算符输出。
3.2 对于自定义数据类型, 无法输出。
3.3 重裁左移
3.3.1 利用成员函数:失败,原因不能让cout在左侧
3.3.2 利用全局函数: ostream &operator<< ( ostream &cout,A
&P)
3.3.3 如果A属性是私有的,可以选择友元技术访问私有属性
4.递增运算符重载
4.1 前置++运算符重载
4.1.1 返回类型是 引用,形如 A & operator++()
4.1.2 先加后返回
4.2 后置++运算符重载
4.2.1 返回类型是 数值,形如 A operator++(int),注意要有占
位参数
4.3 前置++效率略高于后置++
4.3.1 因为前置++不会调用拷贝构造函数
5.智能指针案例-指针运算符重载
5.1 智能指针用途:用来托管new出来堆区创建的对象的释放
5.2 如果想让某a对象当作指针对待,需要重载 ->和*运算符
6. 赋值运算符重载
6.1 系统会默认给一个类提供4个函数:默认构造函数、拷贝构造函数、析构
函数、operator=
6.2 由于系统提供的operator= 会进行简单的值拷贝,导致在属性中有堆区的
数据的情况下会进行重复释放
6.3 解决方案:重载operator=
6.4 返回值不能是void,应例如 A& operator=(const A & P);括号中const
是防止原数据被修改
7.[]运算符重载
7.1 如果存在一个数组类,在这个数组类封装中将对象可以当作数组名对待,
需要利用[]方式将数组中的数据进行设置和获取
7.2 具体格式例如: int& operator[](int index);必须注意要使用引用
最后
以上就是称心信封为你收集整理的C++每日学习笔记DAY5的全部内容,希望文章能够帮你解决C++每日学习笔记DAY5所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复