C++类模板std::function使用

本文介绍了C++中std::function的使用方法,包括普通函数、匿名函数和类成员函数的绑定与调用。通过实例展示了如何声明和应用std::function,以及它在处理不同类型函数指针时的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 使用前添加头文件

#include <functional>

2.普通函数使用

声明模板 std::function<返回类型(参数列表)> 模板变量名 = 已定义函数名

原始函数 myfunc

void myfunc(int a)
{
   printf("%d\n",a);
}
类模板映射到原始函数 myfunc 
std::function<void(int)> void_func = myfunc;

映射后调用

void_func(888);

输出结果: 888

3.匿名函数调用

声明模板 std::function<返回类型(参数列表)> 模板变量名 = [引用列表](参数列表) -> 返回类型 {}

int n = 999;//n用于匿名函数引用
std::function<int(int,int)> lambad_param_call = [n](int a,int b) -> int
{
    printf("%d,%d,%d\n",n,a,b);
    return n + a + b;
};

下面为不带参数与引用的匿名函数

std::function<void()> lambad_call = []() {
        printf("%s\n", "std::
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自由软件开发者

有你的鼓励,我会更加努力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值