重载、覆盖与隐藏
成员函数被重载的特征:
- 相同的范围(在同一作用域中)
- 函数名字相同
- 参数不同
- virtual 关键字可有可无
- const常成员函数可以构成重载
- 和函数返回值无关
覆盖是指派生类函数覆盖基类函数特征是:
- 不同的范围(分别位于派生类与基类)
- 函数名字相同
- 参数相同
- 基类函数必须有virtual。
隐藏规则
1.继承关系的类
2.父子类的同名同参函数不能为虚,则子类此函数隐藏了父类的函数
如果要调用,则显示调用
3.父子类的同名虚函数,一定不能同参
C++ 中成员函数的重载、覆盖与隐藏的区别
本文探讨了C++中的三个关键概念:函数重载,覆盖和隐藏。重载发生在同一作用域内,函数名相同但参数不同;覆盖涉及派生类和基类,需函数名和参数相同且基类函数为virtual;隐藏规则指出,若子类非虚函数与父类同名同参,则会隐藏父类的函数,需要显式调用。
摘要由CSDN通过智能技术生成