C++ override

1、公有继承
公有继承包含两部分,一是函数接口,而是函数实现
1.1 纯虚函数
纯虚函数,继承的是基类中成员函数的接口且要在派生类中重写成员函数的实现
要调用基类的成员函数,须加类作用域操作符::
1.2 普通虚函数
虚函数会在基类中,定义一个缺省的实现,表示继承的是基类成员函数接口和缺省实现,由派生类选择是否重写该函数。
实际上,允许虚函数同时继承接口和缺省实现是危险的。最好是基类实现缺省行为,但只有在派生类要求时才提供该缺省行为
方法一
纯虚函数+缺省实现,因为是纯虚函数所以只有接口被继承,其缺省的实现不会被继承。派生类要想使用该缺省的实现,必须显式地调用
方法二
C++11中使用关键字override,可以避免这样的不小心

override
可以避免派生类中忘记重写虚函数的错误
在派生类中,override继承自基类成员函数的实现,要满足:
基类中,成员函数声明为virtual
基类和派生类中,成员函数的返回类型和异常规格必须兼容
基类和派生类中,成员函数名、形参类型、常量属性和引用限定符必须完全相同
override关键字可以显示地在派生类中声明,哪些成员函数需要被重写,如果没被重写,则编译器会报错。
这样即使不小心漏写了虚函数重写的某个苛刻条件,也可以通过编译器的报错,快速改正错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值