当前位置: 首页 > wzjs >正文

闽侯福州网站建设一级域名好还是二级域名好

闽侯福州网站建设,一级域名好还是二级域名好,网站建设用英语怎么说,软件下载网站搭建C11 包装器 函数指针与回调函数 对于函数而言,函数名即函数指针,使用同类型的函数指针变量,可以实现对其所指向的函数进行传递。 void func1(int a, int b); .... void func8(int a, int b);void doSomething(void(*func)(int, int), int …

C++11 包装器

函数指针与回调函数

对于函数而言,函数名即函数指针,使用同类型的函数指针变量,可以实现对其所指向的函数进行传递。

void func1(int a, int b);
....
void func8(int a, int b);void doSomething(void(*func)(int, int), int a, int b)
{...func(a, b);...
}

doSomething函数中,func回调函数,通过函数指针进行传递并调用。

可以根据传入的函数指针来进行不同的操作,而不用关心具体的func功能。


std::function

使用需要 functional 头文件

std::function 是一个通用的可调用对象的封装。

它允许你将任何可调用实体(例如函数、函数指针、成员函数指针、lambda表达式等)存储为一个函数对象(仿函数),并以一种统一的方式进行调用

void myFunc(int x);class MyClass
{
public:void myFunc(int x);static void stFunc(int x);
};//仿函数
class MyFunc
{
public:void operator()(int x);
};//普通函数
std::function<void(int)> func1(myFunc);//普通成员函数,不要忘记this指针
std::function<void(MyClass&,int)> func2(&MyClass::myFunc);//静态成员函数
std::function<void(int)> func3(MyClass::stFunc);//仿函数
std::function<void(int)> func4(MyFunc());//lambda表达式
std::function<void(int)> func5([](int x)->void {});

对于std::function对象的使用,根据其参数列表进行类似仿函数的使用方式即可

//普通函数
func1(2023);//普通成员函数
MyClass my;
func2(&my, 7);//静态成员函数
func3(27);//仿函数
func4(13);//lambda表达式
func5(34);

std::bind

std::bind是一个函数模板,用于创建一个新的可调用对象,并绑定到特定的参数或对象。

可以通过 std::bind 将可调用实体与特定的参数绑定在一起,生成一个新的函数对象。这在需要更改函数签名或固定部分参数时非常有用。

请添加图片描述


绑定普通函数:

void myFunc(int x, int y);//使用std::bind绑定y为27
auto bindFunc = std::bind(myFunc, std::placeholders::_1, 27);bindFunc(7);

上述中,使用std::bindmyFunc与第二个参数27绑定在一起,生成新的函数对象bindFunc

_1:是占位符,用于表示调用时传入的参数, 表示调用时的第一个参数。

_2, _3, …同理


绑定成员函数示例:

class MyClass
{
public:void myFunc(int x);
};MyClass my;
std::function<void(int)> func = std::bind(&MyClass::myFunc, &my, std::placeholders::_1);func(2023); //绑定到对象my, 相当于my.myFunc(2023)

Lambda替代bind

void myFunc(int x, int y);//绑定y为27
auto bindFunc = [](int x) { myFunc(x, 27)};bindFunc(7);

#include <iostream>
#include <functional>class MyClass
{
public:void myFunc(int x){cout << x << endl;}
};int main()
{MyClass my;std::function<void(int)> func = [&my](int x)->void { my.myFunc(x)};func(2023); 
}

🦀🦀观看~~

http://www.dtcms.com/wzjs/242555.html

相关文章:

  • 门户网站名词解释武汉网站竞价推广
  • 怎么用ps做网站效果图软文街官方网站
  • WordPress 微信小程序登录seo点击排名工具
  • 景观做文本常用的网站东莞优化疫情防控措施
  • 新吴区推荐做网站公司百度app免费下载安装
  • 做电影网站需要注意什么手机系统优化软件哪个好
  • 哪个网站可以做临时工刷赞业务推广网站
  • 姓氏头像在线制作免费生成图片seo智能优化
  • 做直播网站要多大带宽站长之家
  • 深圳罗湖区网站开发公司汕头百度推广公司
  • 什么网站可以找人做软件下载微营销软件
  • 社交网站建设公司seo网站地图
  • wordpress 大前端2.0windows优化大师可以卸载吗
  • 品牌策划推广方案seo快速排名工具
  • 如何安装网站好消息疫情要结束了
  • 重庆网站界面设计指数基金什么意思
  • 游戏源码 wordpress上海seo网络优化
  • 网站推广多少钱seo优化方案模板
  • 吧网站做软件的软件seo一键优化
  • 免费做效果图网站网络营销平台都有哪些
  • wordpress修改了链接方式无法访问酒泉网站seo
  • 纯php网站找网站公司制作网站
  • 个体工商户经营范围网站开发html网页制作网站
  • 好看的企业门户网站推广标题怎么写
  • 网站如何做压力测试搜索排名优化策划
  • 武汉建管站百度竞价外包
  • 定西兰州网站建设线上推广渠道有哪些
  • 签证中心网站建设2023上海又出现疫情了
  • iis网站启动不了百度搜题在线使用
  • 怎么更改网站栏目id百度霸屏推广一般多少钱