栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++每日学习笔记DAY5

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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);必须注意要使用引用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012917.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号