将不同参数的std::函数传递给同一个函数可以通过使用函数指针或者函数对象来实现。下面是两种常见的方法:
示例代码:
#include <iostream>
// 定义函数指针类型
typedef void (*FunctionPtr)(int);
// 接受函数指针作为参数的函数
void callFunction(FunctionPtr func, int arg) {
func(arg);
}
// 不同参数的std::函数
void func1(int arg) {
std::cout << "Function 1: " << arg << std::endl;
}
void func2(int arg) {
std::cout << "Function 2: " << arg << std::endl;
}
int main() {
// 将不同参数的std::函数传递给同一个函数
callFunction(func1, 10);
callFunction(func2, 20);
return 0;
}
示例代码:
#include <iostream>
// 函数对象类
class Functor {
public:
void operator()(int arg) {
std::cout << "Function: " << arg << std::endl;
}
};
// 接受函数对象作为参数的函数
void callFunction(Functor func, int arg) {
func(arg);
}
int main() {
// 将不同参数的std::函数传递给同一个函数
Functor func;
callFunction(func, 10);
callFunction(func, 20);
return 0;
}
以上两种方法都可以实现将不同参数的std::函数传递给同一个函数。具体选择哪种方法取决于实际需求和代码结构。
领取专属 10元无门槛券
手把手带您无忧上云