C++-----重载、重写与隐藏

本文详细介绍了C++中的重载、重写和隐藏的概念。重载发生在同一作用域内,函数名相同但参数列表不同;重写(覆盖)发生在继承关系中,子类函数与基类函数名、参数列表和返回值类型相同,且基类函数需有`virtual`修饰;隐藏则是在子类中同名函数导致基类同名函数不可见,无论参数是否相同。文中通过示例区分了这三者的不同,并强调了`virtual`关键字在多态中的作用。
摘要由CSDN通过智能技术生成

之前在学习C++继承和多态的时候对于三个概念理解的不是很透彻,现在对这三个的概念来总结一下


重载 overload

重载:简单说就是函数名称相同,但是参数列表不相同的情形,这样的同名不同参数的函数互相称之为重载函数。
重载实际上属于多态的一种,是编译时多态即静态多态
来看看重载的条件

  • 相同的范围(成员函数重载)
  • 函数名相同
  • 参数列表不同

在这里解释一下参数列表不同可以是以下几种不同

  • 参数个数不同
  • 参数类型不同
  • 参数顺序不同

来看示例(都在类中实现)
这里写图片描述
我们可以看到,前四个互为重载函数,而最后一个不是。 不能只用返回值类型不同来重载函数


重写 override

重写也就是我们说的覆盖,覆盖是指派生类中的函数覆盖基类的函数
派生类中存在重新定义的函数。其函数名,参数列表,返回值类型,所有都必须同基类中被重写的函数一致。只有函数体不同(花括号内),那么派生类中的那个函数就相当于重写了基类的该函数。注:基类中被重写的函数必须有virtual关键字修饰
来看例子:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值