C++_函数重载,函数重写,函数重定义的区别

1. 一句话来说

函数重载 是在类内部,函数名一样,参数不一样。(只有返回值不同,不叫重载,因为如果不用返回值就不知道调用哪一个函数了)

函数重定义 是子类重新实现父类函数,名称必须一样,返回值和参数不作要求。又叫隐藏。

函数重写 是子类重新实现父类虚函数(函数原型必须一样)。又叫覆盖。(念咒开始: 重写虚函数 就记住了。)

下面情况会报错:cannot overload functions distinguished by return type alone

class Person{
public:
   int test(int a);
   void test(int a);
}

2. 为什么叫重写

重写顾名思义,就想用铅笔写字,把以前写的擦掉,重写一遍。所以以前的不存在了。不存在那就是覆盖掉了。这样不管是父类还是子类调用重写后的函数都只有重写后的函数。

3. 重写有什么应用

1. 利用函数重写可以实现,父类访问子类函数的目的。(所以基类析构函数必须为虚函数)。

2. 重写实现了运行时多态,即根据运行时对象的类型来调用不同的函数。

4. 鸣谢

C++ 重载 重写(覆盖)重定义

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值