导图社区 虚函数C加类模板学习框架笔记思维导图
虚函数C++类模板学习框架笔记思维导图,整理了联编、子类父类指针与对象,没有虚函数、虚函数、类模板、分层设计模式的内容,有兴趣的可以看看。
社区模板帮助中心,点此进入>>
虚函数C++类模板学习框架笔记思维导图
联编
静态
函数模板是静态
继承类的成员函数覆盖
条件编译
模板元编程
动态
虚函数
虚函数表virtualTable
if else
switch
子类父类指针与对象,没有虚函数
父类指针指向子类对象
仅能访问父类内部的方法
父类与子类函数重名,调用父类
delete出现内存泄漏
子类指针指向父类对象
所有方法都可以访问,不一定执行成功
父类与子类函数重名,调用子类,不意味执行成功
类,数据私有,代码共享,不使用数据的代码,空指针可以访问成功,使用数据调用成功执行崩溃
内存越界
有可能出错也有可能不错,取决于越界的内存是否有人使用
父类指向父类对象
正常情况
子类指向子类
非纯虚函数
基类,可以实例化
纯虚函数
带有纯虚函数的类都是抽象类
无法实例化
抽象类继承
接口的不断拓展
抽象类不可以用于函数的参数以及返回值类型
实现了所有纯虚函数的类才可以实例化
带有纯虚函数的类就是抽象类,接口的作用
可以实现,也可以不实现,与虚函数最大的差别是否有=0,非纯虚函数必须要有函数体
类的接口作用
适配器模式
一个接口可以满足不同的需求
接口靠基类的虚函数
需求靠派生类的函数覆盖来实现
实现多态
一个接口,实现多个功能,函数模板,类模板,虚函数
依赖于父类指针可以存储子类的地址
构造与析构
构造函数不可以是虚函数
构造函数不可以是虚函数,不会再构造,没有办法创建子类中的父类对象
析构函数是虚函数
正确释放父类指针指向的子类对象
虚函数表-实现原理
动态联编
一个类无论有多少个虚函数,纯虚函数,仅占4个字节存储虚函数表的地址
学习使用编译器分析类的信息
虚函数可以实现异构链表
链表的每一个元素可以类型不一样
依赖于基类指针存储派生类对象的地址
虚函数实现分层设计模式
错误容易快速定义
类模板
实现代码重用
对类型不同,操作方法一样的类进行的一种抽象
适用于任何类型
STL boost本质都是类模板
分层设计模式
MVC模式
虚函数表
抽象类的继承分层模式
类的继承示意图
dynamic_cast主要适用于带有虚函数的基类派生类指针转换,转换时安全的,如果不匹配返回空指针