Skip to content

函数遮蔽

当派生类重载了父类中的同名成员函数之后,就无法在派生类内部或者通过派生类实例对象来调用父类中的同名函数,这种现象就叫函数遮蔽。

如果想要解除函数遮蔽有两种方法:

  • 一种是通过作用域运算符::在类的内部调用父类中的同名函数,无法在类外通过实例对象调用。使用方法:基类名称::基类中的同名函数名称();
  • 另一种是通过C++ 11中为using引入的新功能,在子类中通过using声明解除函数遮蔽。这种方法解除以后在类内部及类外的实例对象都可以调用父类中的重载版本,重写的版本无法调用。使用方法:using 基类名称::基类中的同名函数名称;