派生类访问基类

C++ 中,怎样使用派生类的对象访问基类中被派生类覆盖或隐藏了的函数或变量?主要有两种方式,即:使用作用域运算符和使用 using 语句。

使用作用域运算符

在使用对象调用基类中的函数或变量时使用作用域运算符即语句 m.A::f(2),这时就能访问基类中的函数或变量版本

使用using

该方法只适用于被隐藏或覆盖的基类函数。

using A::f

使用这种语句还是没法调用基类在派生类中被覆盖了的基类的函数,比如 m.f() 调用的是派生类中定义的函数 f,要调用被覆盖的基类中的版本要使用语句 m.A::f() 才行。