zoukankan      html  css  js  c++  java
  • 重载、覆盖、隐藏

    重载(overload):
      必须在一个域中,函数名称相同但是函数参数不同,重载的作用就是同一个函数有不同的行为,因此不是在一个域中的函数是无法构成重载的,这个是重载的重要特征
      必须在一个域中,而继承明显是在两个类中了哦,所以上面的想法是不成立的,我们测试的结构也是这样,派生类中的f(int,int)把基类中的f(int)隐藏了
      所以,相同的函数名的函数,在基类和派生类中的关系只能是覆盖或者隐藏。

    覆盖(override)

    如果基类中的函数和派生类中的两个名字一样的函数f
    满足下面的两个条件
    (a)在基类中函数声明的时候有virtual关键字
    (b)基类CB中的函数和派生类CD中的函数一模一样(函数名,参数,返回类型都一样。)
    那么这就是叫做覆盖(override),这也就是虚函数。

    隐藏(hide):
    指的是派生类的成员函数隐藏了基类函数的成员函数.隐藏一词可以这么理解:在调用一个类的成员函数的时候,编译器会沿着类的继承链逐级的向上查找函数的定义,如果找到了那么就停止查找了,所以如果一个派生类和一个基类都有同一个同名(暂且不论参数是否相同)的函数,而编译器最终选择了在派生类中的函数,那么我们就说这个派生类的成员函数"隐藏"了基类的成员函数,也就是说它阻止了编译器继续向上查找函数的定义

  • 相关阅读:
    https证书设置以及设置301跳转
    SVN服务器从windows迁移至Linux
    禅道从windows迁移到linux
    gitlab安装和迁移
    java 枚举类型enum 的使用
    java中的日期注意事项
    C# using 三种使用方式 zhuan
    设计路径测试覆盖率与代码测试覆盖率
    Selenium API (C#) 转
    Selenium 2.0 WebDriver with Visual Studio, C#, & IE
  • 原文地址:https://www.cnblogs.com/luoquan/p/4953171.html
Copyright © 2011-2022 走看看