函数重载
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
2.↓↓↓↓↓↓↓↓ 1.函数传参默认实参:默认排序方式 2.函数传参决定排序方式

3.继承权限:class 类名 :继承权限 继承父类 {};例:class Cat :public animal {}
; public、protected、private权限依次提高
外部可访问、可被继承、不可访问不可继承 三层权限
父子类权限相交时,有高级权限则取高级权限,例如父类protected、子类public,则权限为protected,以此类推
4.继承时数据成员拷贝,方法可访问
5.智能指针
当指针置空时,会自动释放申请的动态内存
use_count()能统计指向同一地址的有几个指针
继承与虚函数
1.继承时的方法调用:子类调用自身方法之前,必须先调用父类的方法,例如:子类调用拷贝构造,父类必须先调用拷贝构造,运算符同理
2.↓↓↓↓↓↓↓子类构造函数参数列表(必须)调用父类构造函数传参


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

3.多继承
语法

多继承时继承顺序由继承列表顺序决定
多继承时会产生菱形继承◇
4.继承的运用