在C++中,如果你想要重写一个函数并在重写后调用原始函数,你可以使用以下方法:
#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()
来调用原始的基类函数。
#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++中重写后调用原始函数的目标。具体选择哪种方法取决于你的具体需求和场景。
领取专属 10元无门槛券
手把手带您无忧上云