我是靠谱客的博主 称心信封,最近开发中收集的这篇文章主要介绍C++每日学习笔记DAY5,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部