在C++中,可以使用函数指针或者函数对象来实现delegate,通过这两种方式可以实现参数传递。
使用函数指针时,可以定义一个函数指针类型,然后将需要传递的参数作为函数指针的参数传递给delegate。例如:
#include <iostream>
typedef void(*Delegate)(int);
void function(int arg) {
std::cout << "Argument is: " << arg << std::endl;
}
int main() {
Delegate delegate = function;
delegate(123);
return 0;
}
使用函数对象时,可以定义一个带有参数的函数对象类,并重载函数调用操作符(),然后将函数对象作为delegate的参数传递。例如:
#include <iostream>
class Delegate {
public:
void operator()(int arg) {
std::cout << "Argument is: " << arg << std::endl;
}
};
int main() {
Delegate delegate;
delegate(123);
return 0;
}
无论使用函数指针还是函数对象,都可以实现参数传递。根据具体的需求和使用场景,选择合适的方法来实现delegate。