C++中函数覆盖 隐藏 重载区别
2015-03-30 14:30
127 查看
C++在继承这一节涉及到函数覆盖 隐藏 重载等,如何区别它们呢?
首先函数覆盖的条件:<1>基类函数必须是虚函数
<2>发生覆盖的两个函数要分别位于派生类和基类中
<3>函数名称和参数列表完全相同
其次函数隐藏主要有以下两种情况:
<1>派生类的函数和基类函数完全相同(函数名和参数列表相同),只是基类的函数没有使用virtual关键字。此时基类的函数将被隐藏,而不是覆盖。
<2>派生类的函数与基类的函数同名,但参数列表不同,在这种情况下,不管基类的函数声明是否有virtual关键字,基类的函数都被隐藏,注意这种情况与函数重载的区别,重载发生在同一个类中。
最后函数重载的条件:发生在同一个类中,函数名相同,参数列表中参数个数,参数类型,排列顺序。
首先函数覆盖的条件:<1>基类函数必须是虚函数
<2>发生覆盖的两个函数要分别位于派生类和基类中
<3>函数名称和参数列表完全相同
其次函数隐藏主要有以下两种情况:
<1>派生类的函数和基类函数完全相同(函数名和参数列表相同),只是基类的函数没有使用virtual关键字。此时基类的函数将被隐藏,而不是覆盖。
<2>派生类的函数与基类的函数同名,但参数列表不同,在这种情况下,不管基类的函数声明是否有virtual关键字,基类的函数都被隐藏,注意这种情况与函数重载的区别,重载发生在同一个类中。
最后函数重载的条件:发生在同一个类中,函数名相同,参数列表中参数个数,参数类型,排列顺序。
相关文章推荐
- C++中成员函数的重载、覆盖与隐藏
- [C++基础]重载、覆盖、多态与函数隐藏(1)
- c++中多态函数以及函数重载,覆盖,遮蔽(隐藏)的区别
- 高质量C++成员函数的重载、覆盖与隐藏
- C++:成员函数的重载、覆盖与隐藏
- C++中成员函数的重载、覆盖与隐藏
- [C++基础]重载、覆盖、多态与函数隐藏
- C++成员函数的重载、覆盖与隐藏
- C++继承中覆盖和隐藏基类成员变量或成员函数
- C++成员函数的重载、覆盖与隐藏
- C++成员函数的重载、覆盖与隐藏
- C++ 成员函数的重载、覆盖与隐藏
- [C++基础]重载、覆盖、多态与函数隐藏(3)
- c++ 中函数的重载 覆盖 隐藏(笔记)
- C++成员函数的重载、覆盖与隐藏
- C++中成员函数的重载、覆盖与隐藏
- C++中的虚函数,多态,覆盖隐藏重载
- C++成员函数的重载、覆盖与隐藏
- C++成员函数重载、覆盖和隐藏的区别
- 第八章 C++函数的高级特性(8.2 成员函数的重载、覆盖与隐藏)