前面我们说了虚函数实现了运行时的多态,但是没有详细说明虚函数的具体实现机制,所以这里详细说明一下虚函数,并对多态进行一下补充
上一篇链接:C++多态详解_真的没事鸭的博客-CSDN博客
目录
1,虚函数定义时的注意事项:
2,虚函数的作用:
3,虚函数的声明形式
4,虚函数有两种:一般虚函数和虚析构函数
1,一般虚函数
什么是联编
那什么是静态联编和动态联编呢?
总结:
2,虚析构函数
使用虚析构函数的目的
虚析构函数的声明形式:
结论:
5,虚函数的实现机制
1,派生类不重写基类虚函数
2,派生类重写基类函数
3,多重继承
虚函数调用过程
6,纯虚函数
纯虚函数的用法
纯虚函数的声明形式
注意:
7,抽象类
抽象类的用途
抽象类的定义形式
使用纯虚函数和抽象类的注意事项
总结:
抽象类的应用
8,内部类
定义形式
章末总结
1,虚函数定义时的注意事项:1,类中的静态成员函数不可声明为虚函数
2,派生类对基类函数重新定义时,必须与基类中虚函数的原型完全一致
2,虚函数的作用:虚函数是运行时多态,若某个基类函数声明为虚函数,则其公有派生类将定义与其基类虚函数原型相同(函数名、返回值类型、参数个数、参数类型及参数顺序均相同)的函数,这时,当使用基类指针或基类引用操作派生类对象时,系统会自动用派生类中的同名函数代替(覆盖)基类虚函数。
下面看一个例子:
#include
using namespace std;
class A
{
public:
void display()
{
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?