C 回调使用多个类的类成员
问题:
在 C 中,如何您可以创建一个适用于多个类的通用回调函数,每个类都有自己的回调成员function?
解决方案:
原本使用静态回调方法和指向实例的指针,但这种方法可以改进。这里有两个替代解决方案:
使用 C 11 std::function 和 std::bind:
void addHandler(std::function<void(int)> callback);
std::bind(&MyClass::Callback, this, _1)
使用 C 11 Lambda 函数:
使用 lambda 函数,您可以进一步简化代码:
handler->addHandler([](int x) { std::cout << "x is " << x << '\n'; });
以上是如何为多个类创建通用 C 回调?的详细内容。更多信息请关注PHP中文网其他相关文章!