• C++学习笔记(面向对象部分开始6500字复习总结)


    函数重载

    1.对象属性 对象方法 和 类属性 类方法

    2.const函数read only,不会修改任何数据

    3.class默认private,struct默认public

    4.!!!!C++编译器优化!!!《个人理解》当需要调用拷贝构造时,就一直往前传递this地址指针,省掉中间的拷贝构造,直接让对应接口的构造函数在目标对象的地址上进行构造

    5.函数重载的原理是根据目标文件进行区分,参数列表不同,目标文件中的函数名也会不同

    6.函数重载时的冲突

    有默认值的函数会涵盖无默认值但其余参数相同的函数,比如:func(int a, 7) 可以接收单个int参数,也能接收两个参数,此处就与func(int a)冲突了

    底层const是一类,顶层const和非const是一类,同类会冲突,所以顶层const和非const不能进行重载

    运算符重载与仿函数

    1.默认函数的说明与禁用

    /*此处仅仅做说明,表明编码者的意图,但并不会禁用默认的构造函数等等

    如要禁用,将其放入private即可,运算符等类成员都可*/

    2.friend类内声明,声明对象类外即可对类访问

    3.委托构造?可以委托其他构造函数的结构给自己构造↓↓↓↓↓↓↓↓↓↓↓↓

    4.输出不便时,重载<<运算符,例如:输出数组

     5.调用函数接口只需要函数名即可,函数传参时可以传右值,比如类的匿名函数,CMP()拷贝构造一个匿名函数

    6.仿函数比起函数,可以应用类的功能,比如重载运算符,构造传参等等

     7.↑↑↑↑↑↑↑↑异或运算符的应用,传参0 ^ 判断1,即为1,此时逻辑为判断为真即为真,为假即为假,传参1 ^ 判断1,此时逻辑判断为真即为假,假即为真,与判断相反,即实现传参决定判断顺逆

    sort封装

    1.基于快排,利用function cmp,可以指向函数与仿函数、lambda表达式

    2.↓↓↓↓↓↓↓↓ 1.函数传参默认实参:默认排序方式 2.函数传参决定排序方式

     3.继承权限:class 类名 :继承权限 继承父类 {};例:class Cat :public animal {}

    ; public、protected、private权限依次提高

    外部可访问、可被继承、不可访问不可继承 三层权限

    父子类权限相交时,有高级权限则取高级权限,例如父类protected、子类public,则权限为protected,以此类推

    4.继承时数据成员拷贝,方法可访问

    5.智能指针

    当指针置空时,会自动释放申请的动态内存

    use_count()能统计指向同一地址的有几个指针

    继承与虚函数

    1.继承时的方法调用:子类调用自身方法之前,必须先调用父类的方法,例如:子类调用拷贝构造,父类必须先调用拷贝构造,运算符同理

    2.↓↓↓↓↓↓↓子类构造函数参数列表(必须)调用父类构造函数传参

     

    子类运算符重载也要调用父类运算符重载(当成函数来用,同样是继承的方法)

    3.多继承

    语法

     多继承时继承顺序由继承列表顺序决定

    多继承时会产生菱形继承◇

    4.继承的运用

  • 相关阅读:
    【论文写作】RSA算法的实现总体设计参考
    解读先电2.4版 iaas-install-mysql.sh 脚本
    【星球】【slam】 研讨会(5)VINS:Mono+Fusion 重点提炼
    C# out参数out多个参数
    学习记录:VS2019+OpenCV3.4.1实现SURF库函数的调用
    Linux学习记录——일 基本指令(1)
    【JAVA基础】【查漏补缺】07 - 集合Collection和单列集合List
    题目 1311: 数字三角形
    CentOS7安装mysql
    Python迭代器和生成器
  • 原文地址:https://blog.csdn.net/deligent_torche/article/details/127827414