【问题标题】:Calling overriden function [duplicate]调用覆盖函数[重复]
【发布时间】:2021-04-17 01:13:34
【问题描述】:

假设我有一个基类B

struct B {
    virtual void f();
};

还有一个派生自B 的类,称为D

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

是否可以从D::f 内部调用B::f

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

【问题讨论】:

  • 是的,B::f();

标签: c++


【解决方案1】:

感谢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

【讨论】:

    猜你喜欢
    • 2010-10-25
    • 1970-01-01
    • 2023-03-04
    • 2021-06-11
    • 2014-11-20
    • 1970-01-01
    • 2014-02-17
    • 2013-09-21
    • 2015-09-26
    相关资源
    最近更新 更多