继承下的几个概念的区别

问题一  

重载、屏蔽、复写的区别是什么?

  

重载:相同作用域下,同名函数因为函数名相同,具有不同的参数列表,而表现出不同的行为和功能。


运用范围:重载既可以发生在全局作用域又可以发生在类的成员函数下。属于静态多态性,联编方式为静态联编。


屏蔽(隐藏):派生类中有与基类冲突的命名成员。即在派生类和基类之间存在相同的函数名称。但是函数原型不同。

在通过派生类对象调用同名成员函数时,总是会调用派生类中的这个同名成员函数。除非加上基类的作用与解析运算符

才能调用基类的同名成员。

运用范围:和基类同名但是函数原型不同的派生类新增的成员函数。一般要避免这种类设计。


复写(覆盖、重写、重定义):这是派生类从基类中继承而来的同名成员函数,但是因为业务需要,需要提供一个

派生类的实现版本。通常都是用于支持多态。因为,C++中,要把派生类打算重新定义的成员函数申明为虚函数

用以支持多态,而那些不打算在派生类重新定义的成员函数不应该申明为虚函数。

运用范围:继承自基类的同名成员函数,函数原型和基类相同,通常为了支持多态。因此,大部分这样的函数都是虚函数。

复写需要注意的一点是:原型中的返回值类型如果是基类的指针或引用,在派生类中则可以是派生类的指针和引用

但是这只能在返回类型中有这个宽限,参数类型不能这样做。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值