【发布时间】:2016-08-21 03:48:47
【问题描述】:
我有一个基类“a”,其中包含一些虚函数,在派生类“b”中,我重载了该函数。现在我还有一个仅从 'b' 派生的类 'c' 并且我有一个指向类 c 的指针。但是我无法弄清楚如何从 'c' 类指针中调用该函数。帮帮我,也许它很愚蠢,但我被困在这里。
【问题讨论】:
标签: c++ pointers inheritance
我有一个基类“a”,其中包含一些虚函数,在派生类“b”中,我重载了该函数。现在我还有一个仅从 'b' 派生的类 'c' 并且我有一个指向类 c 的指针。但是我无法弄清楚如何从 'c' 类指针中调用该函数。帮帮我,也许它很愚蠢,但我被困在这里。
【问题讨论】:
标签: c++ pointers inheritance
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();
【讨论】: