我是靠谱客的博主 快乐凉面,这篇文章主要介绍【c++基础】笔记(七),现在分享给大家,希望可以做个参考。

1 静态联编和动态的联编

1.1 分类  静态多态  动态多态

1.2 静态多态

1.2.1 运算符重载  函数重载

1.2.2 地址早绑定,编译阶段绑定的

1.3 动态多态

1.3.1 继承  虚函数

1.3.2 地址晚绑定  ,运行时候再去绑定地址

1.4 virtual void fun()  虚函数

2 多态的工作原理

2.1 当父类中有了虚函数中,内部维护一个虚函数表指针,指向自己的虚函数表

2.2 当子类中发生了重写,将自己的虚函数覆盖到虚函数表中

2.3 在运行阶段,发生多态情况下,就会晚绑定地址,找自己的函数地址

3 深入剖析内部的工作原理

3.1 __cdecl //C++默认调用方式

3.2 我们用的调用方式 __stdcall

3.3 typedef void(__stdcall *FUNCCAT)(int);

4 多态练习 计算器案例

4.1 利用原来的写法非常不利于维护和扩展

4.2 但是利用多态来写计算器,可以对扩展提供非常大的好处,利用维护,利用扩展,可读性比较强

4.3 多态就是父类的指针或者引用 指向子类的对象

4.4 开闭原则 – 对扩展进行开放,对修改进行关闭

5 纯虚函数和抽象类

5.1 virtual void func() = 0  纯虚函数的写法

5.2 类 也称为 抽象类

5.3 抽象类 是不能实例化对象的

5.4 抽象类中的纯虚函数  子类在继承的时候 必须要重写

6 虚析构和纯虚析构

6.1 虚析构纯虚析构 解决的问题

6.1.1 发送多态时候,让父类调用子类中的析构函数

6.2 区别

6.2.1 如果是写了纯虚析构 ,这个类就变为 抽象类,不可以实例化对象了

6.2.2 而虚析构依然是可以实例化对象的

7 重写 、重定义、重载

7.1 重载 指的是 函数重载

7.1.1 同一个作用域   参数 个数、类型、顺序不同

7.2 重定义

7.2.1 有继承关系 非虚函数, 子类和父类有了同名的成员,子类会隐藏父类成员,重定义

7.3 重写

7.3.1 有继承关系,父类中的virtual函数,在子类中可以进行重写

7.3.2 重写 返回值 函数名 参数个数、类型顺序都一致

8 向上和向下类型转换

8.1 基类转派生类

8.1.1 不安全

8.1.2 向下类型转换

8.2 派生类 转 基类

8.2.1 安全

8.2.2 向上类型转换

8.3 当发生了多态,类型转换 永远都是安全的

9 

最后

以上就是快乐凉面最近收集整理的关于【c++基础】笔记(七)的全部内容,更多相关【c++基础】笔记(七)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(260)

评论列表共有 0 条评论

立即
投稿
返回
顶部