核心MCU选用的是ESP32 C3
顺序容器
vector有多个构造函数
vector在尾端增添数据拥有比较好的性能
vector内部实现实际上是动态数组
如果你需要高效的随机存取
如果你需要大量的插入和删除
如果你需要随机存取
非类型参数
非类型参数只能是整数
非类型参数不能是一个浮点类型和类类型
抽象类
包含有纯虚函数的类称作抽象类
纯虚函数
‘virtual void Test(void)=0;’
基类不需要实现函数
抽象类不能创建对象
可以作为引用或者指针的类型
子类继承抽象类时必须实现抽象类里面的全部纯虚函数
虚析构函数
若子类继承基类
如果在基类的析构函数前加上virtual关键字
隐藏
当子类继承基类时
当子类继承基类时
多态总结
1.基类(父类)里面的方法是用virtual关键字修饰
2.子类继承父类重写父类里面的方法
3.用父类的指针或引用指向子类对象
4.通过父类指针或引用调用子类重写的父类方法
静态多态是编译器在编译期间完成的
静态多态:函数重载
动态多态是在程序运行时 根据基类的引用指向的对象来确定自己具体该调用哪一个类的虚函数
动态多态
作用:把不同的子类对象都当作父类来看
继承和组合
继承格式
class 派生类名:继承方式 基类名1<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>继承方式 基类名2<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>.... { 派生类类体 };
继承方式有:public , protected,private
基类构造函数的调用
派生类对象仍无法直接访问基类的private成员变量
构造函数调用顺序:
先按照继承时的顺序挨个调用基类的构造函数
析构函数调用顺序和构造函数调用顺序相反
运算符重载
有些棘手
const用法
const 修饰的成员变量只能在构造函数的参数列表中初始化
const 修饰的成员函数不能改变成员变量的值
定义:
void function(void) const
const 修饰的对象只能调用常成员函数