首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C++中重写后调用原始函数?

在C++中,如果你想要重写一个函数并在重写后调用原始函数,你可以使用以下方法:

  1. 使用虚函数和继承:
代码语言:cpp
复制
#include<iostream>

class Base {
public:
    virtual void myFunction() {
        std::cout << "Base class function"<< std::endl;
    }
};

class Derived : public Base {
public:
    void myFunction() override {
        std::cout << "Derived class function"<< std::endl;
        Base::myFunction();
    }
};

int main() {
    Derived d;
    d.myFunction();
    return 0;
}

在这个例子中,我们定义了一个虚函数myFunction()在基类Base中,并在派生类Derived中重写了这个函数。在派生类中的函数实现中,我们调用了Base::myFunction()来调用原始的基类函数。

  1. 使用函数指针和别名:
代码语言:cpp
复制
#include<iostream>
#include<functional>

void originalFunction() {
    std::cout << "Original function"<< std::endl;
}

void newFunction() {
    std::cout << "New function"<< std::endl;
    originalFunction();
}

int main() {
    std::function<void()> func = newFunction;
    func();
    return 0;
}

在这个例子中,我们定义了两个函数originalFunction()newFunction()。在newFunction()中,我们调用了originalFunction()来调用原始函数。我们使用了std::function来创建一个函数指针,并将其指向newFunction()。在main()函数中,我们调用了func()来执行newFunction(),从而间接地调用了原始函数。

这两种方法都可以实现在C++中重写后调用原始函数的目标。具体选择哪种方法取决于你的具体需求和场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券