课余关注复试信息
数据驱动法
ML
两周总结
吴恩达课程学完已经算比较好了,时间不够
保证CPP课程质量,尤其是项目相关知识要扎实
有余力可以继续学数学尤其是概率论课程,吴恩达课程相关代数知识也要补足
反向传播算法
参考深度学习课程相关部分
预习多态继承
多态:
虚函数的特点:在基类/派生类的定义与重载
非成员/静态/内联/构造/友元不能设为虚函数
派生类在定义时加基类列表/类派生列表
声明时不加
访问虚函数:
指针:非虚函数判断指针类型
虚函数判断所指对象类型
引用:类似指针
但一经声明则变量变化不会改变调用函数
构造与析构:
优先调用本类中函数,次而调用基类中函数,不会调用其他派生类函数
纯虚函数
只在基类中声明,且加**=0**,称为抽象基类,不能创建抽象基类对象
派生类必须各自给出定义
另一种抽象类方式:构造函数全部为protected
一般析构函数要定义为虚函数
重载:发生在同一个类中,函数名称相同,但参数的类型、个数、顺序不同。
覆盖:发生在父子类中,同名虚函数,参数亦完全相同。(同名数据成员也有隐藏)
隐藏:发生在父子类中,指的是在某些情况下,派生类中的函数屏蔽了基类中的同名函数。
多基派生结论:
多重继承(带虚函数)
- 每个基类都有自己的虚函数表
- 派生类如果有自己的虚函数,会被加入到第一个虚函数表之中
- 覆盖基类的虚函数,只有第一个虚函数表中存放的是真实的被覆盖的函数的地址;其它的虚函数表中存放的并不是真实的对应的虚函数的地址,而只是一条跳转指令
虚基类
// 结论一:单个虚继承,不带虚函数
// 虚继承与继承的区别
// 1. 多了一个虚基指针
// 2. 虚基类位于派生类存储空间的最末尾
// 结论二:单个虚继承,带虚函数
// 1. 如果派生类没有自己的虚函数,此时派生类对象不会产生虚函数指针
// 2. 如果派生类拥有自己的虚函数,此时派生类对象就会产生自己本身的虚函数指针,
// 并且该虚函数指针位于派生类对象存储空间的开始位置
多重继承和虚拟继承对象模型较单一继承复杂的对象模型,造成了成员 访问低效率,表现在两个方面:对象构造时 vptr 的多次设定,以及 this
指针的调整。
关机
https://blog.csdn.net/heibaikong6/article/details/95865721