• 类 — 成员函数的重载、覆盖与隐藏


    一、成员函数的重载

    重载是指在同一个类定义中,同名函数之间存在的关系。这些同名函数的参数类型和数目均不同。返回值类型可以相同也可以不同。因此不能够参数列表相同,而仅仅依靠返回值类型来区分函数。另外,重载和成员函数是否是虚函数或者静态函数无关。

    二、成员函数的覆盖

    覆盖是指在子类与父类最终同名函数,要求基类必须是虚函数(有virtual关键字),而且要求子类与基类有相同的参数名称、类型,以及相同的返回类型。

    重载与覆盖的区别:

    1)覆盖式子类与基类之间的关系,是垂直的关系;重载是同一个类中不同同名函数之间的关系,是水平的关系。

    2)覆盖要求参数列表相同,重载要求参数列表不同。覆盖要求返回类型相同,而重载不要求(可以一样也可以不一样)

    3)覆盖关系中,调用方法体是根据对象的类型来决定的,重载是根据调用时的参数列表与形参类选择方法体。

    三、成员函数的隐藏

    隐藏是指在某些情况下,派生类的函数屏蔽了基类中的同名函数,这些情况包括:

    1)两个函数参数相同,但是基类函数不是虚函数。

     它和覆盖的区别在于基类中的函数是否虚函数。

    2)两个函数参数不同,无论基类函数是否虚函数,基类函数都会被屏蔽。

     它和重载的区别在于两个函数在不同的类中。

  • 相关阅读:
    P2048 [NOI2010]超级钢琴 (rmq +堆+贪心)
    题解 P4799 【[CEOI2015 Day2]世界冰球锦标赛】
    洛谷 P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维)
    洛谷 P4880 抓住czx
    洛谷 P2471 [SCOI2007]降雨量
    洛谷 P4688 [Ynoi2016]掉进兔子洞 (看到题目背景,galgame玩家狂喜)
    洛谷 P2101 命运石之门的选择 (分治)
    留言版
    【游记】OI 2020(在更)
    类欧几里得算法
  • 原文地址:https://www.cnblogs.com/houjun/p/8613031.html
Copyright © 2020-2023  润新知