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

    重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数。对于这两个函数的调用,在编译期间就已确定,是静态的。也就是说它们的地址在编译器就绑定了(早绑定),因此重载与多态无关。

    覆盖(重写):子类重新定义父类虚函数的方法。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的。因此,这样的函数地址是在运行期间绑定的(晚绑定),重写与多态相关。

      重载的特征              覆盖的特征

      1.相同的范围(同一个类中)    1.不同的类中(父类和子类)

      2.函数名相同         2.函数名相同

      3.参数不同          3.参数相同

      4.virtual关键字可有可无      4.基类中必须有virtual关键字

    隐藏的两种情况:

    1.若派生类中的函数与基类的函数同名,但参数不同,此时无论有无virtual关键字,基类的函数被隐藏。

    2.若派生类中的函数与基类的函数同名,且参数相同,若基类函数没有virtual关键字,基类的函数被隐藏。

  • 相关阅读:
    熟悉常用的Linux操作
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的Hbase操作
    第三章 熟悉常用的HDFS操作
    爬虫大作业
    数据结构化与保存
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    综合练习:词频统计
  • 原文地址:https://www.cnblogs.com/SnailProgramer/p/4495759.html
Copyright © 2011-2022 走看看