继承与多态

全屏查看

1 继承基础 #

mindmap
    id1[继承基础]
        id1-1[继承概念与语法]
        id1-2[继承的定义与作用]
        id1-3[派生类与基类的关系]
        id1-4[继承语法格式]
        id1-5[访问控制与继承方式]
        id1-6[继承类型]
        id1-7[公有继承]
        id1-8[保护继承]
        id1-9[私有继承]
        id1-10[多重继承]
        id1-11[继承中的构造函数与析构函数]
        id1-12[派生类构造函数调用顺序]
        id1-13[基类构造函数的显式调用]
        id1-14[析构函数调用顺序]
        id1-15[虚析构函数的重要性]
继承概念与语法
继承的定义与作用
派生类与基类的关系
继承语法格式
访问控制与继承方式
继承类型
公有继承
保护继承
私有继承
多重继承
继承中的构造函数与析构函数
派生类构造函数调用顺序
基类构造函数的显式调用
析构函数调用顺序
虚析构函数的重要性

2 多态机制 #

多态概念与实现
编译时多态与运行时多态
虚函数机制
虚函数表与虚函数指针
纯虚函数与抽象类
虚函数详解
虚函数声明与定义
虚函数覆盖规则
final 和 override 关键字
虚函数的性能考虑
动态绑定
静态绑定与动态绑定区别
动态绑定的实现原理
动态绑定的应用场景
mindmap
    id2[多态机制]
        id2-1[多态概念与实现]
        id2-2[编译时多态与运行时多态]
        id2-3[虚函数机制]
        id2-4[虚函数表与虚函数指针]
        id2-5[纯虚函数与抽象类]
        id2-6[虚函数详解]
        id2-7[虚函数声明与定义]
        id2-8[虚函数覆盖规则]
        id2-9[final 和 override 关键字]
        id2-10[虚函数的性能考虑]
        id2-11[动态绑定]
        id2-12[静态绑定与动态绑定区别]
        id2-13[动态绑定的实现原理]
        id2-14[动态绑定的应用场景]

3 继承中的特殊问题 #

mindmap
    id3[继承中的特殊问题]
        id3-1[访问控制与友元]
        id3-2[基类成员的访问权限]
        id3-3[友元关系与继承]
        id3-4[保护成员的访问规则]
        id3-5[类型转换]
        id3-6[派生类到基类的转换]
        id3-7[静态类型转换]
        id3-8[动态类型转换]
        id3-9[类型转换的安全性]
        id3-10[多重继承问题]
        id3-11[菱形继承问题]
        id3-12[虚继承机制]
        id3-13[虚基类的构造顺序]
        id3-14[多重继承的优缺点]
访问控制与友元
基类成员的访问权限
友元关系与继承
保护成员的访问规则
类型转换
派生类到基类的转换
静态类型转换
动态类型转换
类型转换的安全性
多重继承问题
菱形继承问题
虚继承机制
虚基类的构造顺序
多重继承的优缺点

4 多态的高级应用 #

接口与抽象类
纯虚函数定义接口
抽象类的使用场景
接口继承与实现继承
运行时类型识别
typeid 运算符
type_info 类
动态类型检查的应用
设计模式中的多态应用
工厂模式
策略模式
模板方法模式
观察者模式
mindmap
    id4[多态的高级应用]
        id4-1[接口与抽象类]
        id4-2[纯虚函数定义接口]
        id4-3[抽象类的使用场景]
        id4-4[接口继承与实现继承]
        id4-5[运行时类型识别]
        id4-6[typeid 运算符]
        id4-7[type_info 类]
        id4-8[动态类型检查的应用]
        id4-9[设计模式中的多态应用]
        id4-10[工厂模式]
        id4-11[策略模式]
        id4-12[模板方法模式]
        id4-13[观察者模式]

5 继承与多态的最佳实践 #

mindmap
    id5[继承与多态的最佳实践]
        id5-1[代码设计原则]
        id5-2[里氏替换原则]
        id5-3[开闭原则]
        id5-4[组合优于继承原则]
        id5-5[接口隔离原则]
        id5-6[性能优化]
        id5-7[虚函数调用的开销]
        id5-8[内联函数与虚函数]
        id5-9[对象切片问题]
        id5-10[内存布局优化]
        id5-11[常见错误与调试]
        id5-12[对象切片问题]
        id5-13[虚函数表损坏]
        id5-14[多重继承的内存布局]
        id5-15[调试技巧与工具]
代码设计原则
里氏替换原则
开闭原则
组合优于继承原则
接口隔离原则
性能优化
虚函数调用的开销
内联函数与虚函数
对象切片问题
内存布局优化
常见错误与调试
对象切片问题
虚函数表损坏
多重继承的内存布局
调试技巧与工具

6 现代C++中的继承与多态 #

C++11/14/17/20新特性
final 关键字
override 关键字
默认和删除函数
向比较运算符
智能指针与多态
unique_ptr 与多态
shared_ptr 与多态
多态对象的生命周期管理
自定义删除器
模板与多态
静态多态与模板
CRTP模式
概念约束与多态
变参模板与继承
mindmap
    id6[现代C++中的继承与多态]
        id6-1[C++11/14/17/20新特性]
        id6-2[final 关键字]
        id6-3[override 关键字]
        id6-4[默认和删除函数]
        id6-5[向比较运算符]
        id6-6[智能指针与多态]
        id6-7[unique_ptr 与多态]
        id6-8[shared_ptr 与多态]
        id6-9[多态对象的生命周期管理]
        id6-10[自定义删除器]
        id6-11[模板与多态]
        id6-12[静态多态与模板]
        id6-13[CRTP模式]
        id6-14[概念约束与多态]
        id6-15[变参模板与继承]