派生类指针如何调用基类函数

how a derived class pointer can call the base class function

本文关键字:调用 基类 类函数 指针 何调用 派生      更新时间:2023-10-16

我有一个基类'a',其中包括一些虚函数,在派生类'b'中我重载该函数。现在我又有了一个从b派生的类c,我有一个指向类c的指针,但是我不知道如何从c类指针调用那个函数。帮帮我,也许这很愚蠢,但我被困在这里。

struct A { virtual void foo() {} };
struct B: A { void foo() override {} };
struct C: B {};
auto main() -> int
{
    C o;
    C* p = &o;
    p->foo();    // Calls B::foo
    p->A::foo(); // Calls A::foo
}

如果c是指向C的指针:

c->A::method();