C++ 中成员函数的重载、覆盖与隐藏的区别

重载、覆盖与隐藏

成员函数被重载的特征:

  1. 相同的范围(在同一作用域中)
  2. 函数名字相同
  3. 参数不同
  4. virtual 关键字可有可无
  5. const常成员函数可以构成重载
  6. 和函数返回值无关

覆盖是指派生类函数覆盖基类函数特征是:

  1. 不同的范围(分别位于派生类与基类)
  2. 函数名字相同
  3. 参数相同
  4. 基类函数必须有virtual。

隐藏规则

        1.继承关系的类
        2.父子类的同名同参函数不能为虚,则子类此函数隐藏了父类的函数
          如果要调用,则显示调用
        3.父子类的同名虚函数,一定不能同参

猜你喜欢

转载自blog.csdn.net/qq_70799748/article/details/129075372