阅读量:117
在C++中,可以使用函数指针或者Lambda表达式来实现类似于C#中的delegate功能。
- 使用函数指针:
#include
// 定义一个函数指针类型
typedef void(*MyDelegate)(int);
// 实现一个函数,用于处理delegate调用
void MyFunction(int value) {
std::cout << "Received value: " << value class="hljs-function">int main() {
// 创建一个delegate
MyDelegate myDelegate = &MyFunction;
// 调用delegate
myDelegate(10);
return 0;
}
- 使用Lambda表达式:
#include
int main() {
// 创建一个Lambda表达式作为delegate
auto myDelegate = [](int value) {
std::cout << "Received value: " << value class="hljs-comment">// 调用delegate
myDelegate(10);
return 0;
}
这样就可以在C++中实现类似于C#中delegate的功能。需要注意的是,C++的函数指针和Lambda表达式在语法和使用上有一些不同,需要根据具体的场景选择合适的方法来实现delegate功能。