📅  最后修改于: 2023-12-03 14:59:49.633000             🧑  作者: Mango
在 C++ 中,派生类可以继承基类的成员函数并可以访问它们。如果基类中的成员函数被覆盖(override)了,那么在派生类中访问该方法时,将调用派生类中的方法。
然而,在某些情况下,我们需要在派生类中访问基类的同名函数。这可以通过使用作用域解析运算符 ::
来实现。例如:
#include <iostream>
class Base {
public:
void foo() {
std::cout << "Base::foo() called" << std::endl;
}
};
class Derived : public Base {
public:
void foo() {
std::cout << "Derived::foo() called" << std::endl;
// 调用基类的 foo() 方法
Base::foo();
}
};
int main() {
Derived d;
d.foo();
return 0;
}
输出:
Derived::foo() called
Base::foo() called
在派生类中我们可以使用 Base::foo()
来调用基类的 foo()
方法。
当然,如果我们在派生类中定义与基类同名的函数,则覆盖(override)了基类的方法,此时将无法访问基类的同名函数。
希望对大家有所帮助,谢谢!