C++里面的重写带有默认参数的虚函数的问题

C++中的虚函数通过运行时查找虚函数表实现多态,而默认参数在编译期确定。如果基类虚函数带有默认参数,子类重写时必须保持默认参数一致,否则可能导致错误。不一致会导致编译器将子类对象当作基类处理,使用基类的默认参数。若子类不带默认参数,需使用using声明以避免编译错误。
摘要由CSDN通过智能技术生成

Reference

在C++里面虚函数是实现多台的主要方式。而虚函数的实现是在运行时通过查找虚函数表里面的函数指针来实现对于不同的子类的虚函数的调用。注意到这里虚函数的调用是运行时的

而默认参数则是C++方便程序员在定义函数的时候当一些默认情况下,给定默认值的一种方式。注意到默认参数的传递是在编译期由编译器确定的。也就是说如果有下面的函数定义:

void 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值