[C++11] C++11 中的回调

timg
之前写 Java 和 OC 非常羡慕其中的回调机制,之前的博客也介绍了一个使用 fast delegate 回调的 C++ 机制(参见:[C++] 简单高效的 delegate 方法)。现在 C++11 已经普及了,也同样支持了回调,虽然比高阶的语言 Java 和 OC 之类还稍显繁琐,但是基本功能已经都有了,这里简单说明如下。

1、回调基本函数
在 C++11 中使用 std::function 定义回调函数和参数类型,使用 std::bind 绑定回调函数。示例如下:

如果你的程序运行没有问题则会显示如下输出:

这就是回调函数定义和使用的基本方式。其中使用回调函数特性需要引入头文件:

定义带参数的回调需要使用 std::placeholders 来作为占位符,你可以根据参数多少任意增加 std::placeholders::_1、std::placeholders::_2 等等。

2、回调对象中的函数
示例代码如下:

如果你的程序运行没有问题则会显示如下输出:

3、回调中的多个参数和返回值

如果你的程序运行没有问题则会显示如下输出:

Add a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注