重载、重定义(隐藏)、重写(覆盖)

1、重载

        同一个类中的同名函数会重载;
        重载函数的函数名相同,参数不同,不能用返回值判断是否是函数重载;
        在不同类中的同名函数不是重载。

2、重定义(隐藏)

        重定义发生在派生类和基类之间
        若派生类和基类有函数名相同的成员函数,但基类中没有用virtual关键字声明,则派生类成员函数为重定义;
        若派生类和基类有函数名相同但参数不同的成员函数,则派生类成员函数为重定义;
        重定义的派生类成员函数会隐藏基类中所有同名的成员函数

3、重写(覆盖)

        重写发生在派生类和基类之间
        若派生类和基类有函数原型相同的成员函数,并且基类用virtual关键字声明(基类成员函数用virtual关键字声明即可,而不管派生类成员函数是否用virtual关键字声明),则此成员函数为重写;
        若派生类和基类有函数原型相同的成员函数,但基类中没有用virtual关键字声明,则为重定义;基类必须有virtual关键字,派生类中重写函数可以没有。
        重写的派生类成员函数会覆盖基类中原型相同的虚函数

4、隐藏和覆盖

        隐藏 
        当派生类和基类函数名相同的成员函数没有声明为虚函数时,派生类的成员函数会隐藏基类的成员函数(会隐藏函数名相同的成员函数)

        覆盖 
        当派生类和基类函数原型相同的成员函数声明为虚函数时,派生类的成员函数会覆盖基类的成员函数。(会覆盖函数原型相同的成员函数,对函数原型不同,函数名相同的成员函数会覆盖)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值