调用覆盖函数

时间:2021-01-12 04:14:13

标签: c++

假设我有一个基类 B

struct B {
    virtual void f();
};

以及从 B 派生的类,名为 D

struct D : B {
    void f() override;
};

无论如何可以从 B::f 内调用 D::f 吗?

void D::f() {
   call B's implementation of f  // <-- ???
   do other stuff
}

1 个答案:

答案 0 :(得分:0)

感谢songyuanyao

#include <iostream>

struct B {
        virtual void f() { std::cout << "A" << std::endl; }
};

struct D : B {
        void f() override {
                B::f();
                std::cout << "B" << std::endl;
        }
};

int main() {
        D d;
        d.f();
}

打印:

A
B
相关问题