我听到一个说法,“C++ 中类的方法可以调用所有级别的所有重写方法”。例如,考虑 A 类、B 类和 C 类。它们具有以下层次结构:
A<-B<-C
意思是 B ihentence 来自 A 和 C inhetence 来自 B。所有的类都有一个方法 foo
。如何从 C 的方法 foo
调用 A 的方法 foo
?
我知道现在可以在 Java 和 C# 中使用,但在 C++ 中可以吗?
最佳答案
您可以使用 scope resolution operator与父类。例如:
#include <iostream>
class A {
public:
virtual void foo() { std::cout << "A"; }
};
class B: public A {
public:
void foo() override { std::cout << "B"; }
};
class C: public B {
public:
void foo() override {
A::foo();
B::foo();
std::cout << "C";
}
};
int main() {
C c;
c.foo();
}
关于c++ - 调用重写的方法而不是直接的父亲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57940031/