C++中函数覆盖 隐藏 重载区别

来源:互联网 发布:淘宝亏钱 编辑:程序博客网 时间:2024/06/07 13:26

C++在继承这一节涉及到函数覆盖 隐藏 重载等,如何区别它们呢?

首先函数覆盖的条件:<1>基类函数必须是虚函数

                                      <2>发生覆盖的两个函数要分别位于派生类和基类中

                                     <3>函数名称和参数列表完全相同

其次函数隐藏主要有以下两种情况:

   <1>派生类的函数和基类函数完全相同(函数名和参数列表相同),只是基类的函数没有使用virtual关键字。此时基类的函数将被隐藏,而不是覆盖。

   <2>派生类的函数与基类的函数同名,但参数列表不同,在这种情况下,不管基类的函数声明是否有virtual关键字,基类的函数都被隐藏,注意这种情况与函数重载的区别,重载发生在同一个类中。


最后函数重载的条件:发生在同一个类中,函数名相同,参数列表中参数个数,参数类型,排列顺序。


0 0