【C++】多态(上)

大家好,我是苏貝,本篇博客带大家了解C++的多态,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述


1.多态的概念

多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时是优先买票。

2.多态的定义及实现

2.1 多态的构成条件

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了 Person。Person对象买票全价,Student对象买票半价。

那么在继承中要构成多态还有两个条件:
1、 必须通过基类的指针或者引用去调用虚函数
2、 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写

下面我们来解释虚函数和重写

2.2 虚函数

虚函数:被virtual修饰的类成员函数称为虚函数。
在这里插入图片描述

这里的virtual和菱形继承的虚拟继承用的virtual没有关系,就像取地址&和引用&没关系一样

2.3 虚函数的重写

虚函数的重写(覆盖):派生类中有一个跟基类完全相同的虚函数,即满足三同(派生类虚函数与基类虚函数的 返回值类型、函数名字、参数列表完全相同),称子类的虚函数重写了基类的虚函数。
在这里插入图片描述

我们上面说,多态的构成条件有2个:
1、 用基类的指针或引用调用虚函数
2、 调用的是虚函数,且派生类必须对基类的虚函数重写

我们已经搞定了虚函数的重写,现在来看看是不是一定要用基类的指针或引用调用虚函数

如果用不用基类的指针或引用,不是多态
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值