C++ 多态 | 虚函数、抽象类、虚函数表

本文详细探讨了C++中的多态概念,包括虚函数、抽象类和虚函数表的工作原理。多态需要通过基类指针或引用调用虚函数,并且派生类必须重写基类虚函数。文章还介绍了重写、重定义、协变、析构函数重写以及final和override的用法,并分析了动态绑定与静态绑定的区别。此外,还讨论了抽象类和虚函数表的重要性,以及如何利用虚函数表实现多态。
摘要由CSDN通过智能技术生成


多态

一种事物,多种形态。换言之,对于同一个行为,不同的对象去完成就会产生不同的结果。

多态的构成条件

多态是继承体系中的一个行为,如果要在继承体系中构成多态,需要满足两个条件:

  1. 必须通过基类的指针or引用调用虚函数

  2. 被调用的函数必须是虚函数,并且派生类必须要对继承的基类的虚函数进行重写


虚函数

虚函数就是被 virtual 修饰的类成员函数 (这里的 virtual 和虚继承的 virtual 虽然是同一个关键字,但是作用不一样)。

  • 任何构造函数之外的非静态函数都可以是虚函数。
  • 关键字 virtual 只能出现在类内部的声明语句之前而不能用于类外部的函数定义
  • 如果基类把一个函数声明成虚函数,则该函数在派生类中隐式地也是虚函数。

重写

一般情况下,当派生类中有一个和基类完全相同的虚函数(函数名、返回值、参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

·Jormungand

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值