c++ - 应该使用什么优雅的方法回调设计?

标签 c++ design-patterns methods callback c++11

我很惊讶之前没有在 SO 上问过这个问题(好吧,至少我找不到它)。

您是否曾在 C++ 中设计过方法回调模式(类似于指向类方法的“指针”),如果是,您是如何设计的?

我知道方法只是一个常规函数,带有一些隐藏的 this 参数作为 context 并且我有一个非常简单的设计。然而,由于事情通常比看起来更复杂,我想知道我们的 C++ 大师 将如何实现这一点,最好是以优雅和标准的方式。

欢迎所有建议!

最佳答案

boost::function对于单个回调,boost::signalboost::signals2当可以注册多个回调时,使用 boost::bind绑定(bind)成员方法(或以不同方式调整签名)。

如果您可以使用支持 C++0x/C++11 的编译器,它可能具有 std::function 和 std::bind,它们是 boost::function 和 boost::bind 的新标准版本

关于c++ - 应该使用什么优雅的方法回调设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2766653/

相关文章:

c++ - 如何解决,在使用元编程的条件基类的情况下没有成员函数 "print"

c++ - 并行多次调用一个函数

java - 从另一种方法在 Try{} 中调用 Scanner? --Java

objective-c - 模拟Objective C中的抽象类和抽象方法?

两种递归方法的Java复杂度

C++ 如何使用views::split 打印单词?

c++ boost asio 异步函数不能在 dll 中工作

java - java中抽象类的抽象方法和接口(interface)的抽象方法的区别

java - 我的模型类或其他类中应该有逻辑吗

design-patterns - 观察者模式有哪些常见的错误处理机制?