C++虚函数在什么情况下使用?

假设我们有一个类A,还有几个它的子类B1,B2,B3。我们创建一个指针A*,要用它指向各子类的实例。
再假设我们有个函数func,各个子类对它都有实现。
这时候,指针A*虽然可以指向子类的实例,却无法调用子类的func函数。(注意这里分两种情况,一种是A没有实现func,一种是A也有func函数,但子类重写了它。这两种情况下A*都无法调用子类的func函数)
那么怎样让A*能调用子类的func函数呢?这就是要用到虚函数的时候了。我们在A里面把func函数声明为虚函数,那么当A*在运行时指向某一个子类的实例的时候,它调用的func就是这个子类实现的func。

那么纯虚函数呢?声明了纯虚函数会把类变成抽象类(无法用它实例化),并使得子类必须实现这个纯虚函数才能实例化。所以纯虚函数用来规范所有派生类必须实现某个接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值