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

温州网站建设哪里好本地广告推广平台哪个好

温州网站建设哪里好,本地广告推广平台哪个好,如何让百度快速收录网站,wordpress怎么搭建美女图库模板C之std::function的介绍 std::function和函数指针的区别介绍std::function 的常见用法包括用法举例 std::function和函数指针的区别介绍 std::function 和函数指针在 C 中都可以用来存储和调用函数,但它们的使用方式和功能有所不同。 函数指针是一种指向函数的指针…

C++之std::function的介绍

    • std::function和函数指针的区别介绍
    • std::function 的常见用法包括
    • 用法举例

std::function和函数指针的区别介绍

std::function 和函数指针在 C++ 中都可以用来存储和调用函数,但它们的使用方式和功能有所不同。

函数指针是一种指向函数的指针,它可以用来调用函数。函数指针的类型取决于它指向的函数的类型,比如函数的参数类型和返回类型。函数指针在编译时就需要确定它所指向的函数类型,并且一旦定义后不能更改。

std::function 是一个可调用对象的封装器,它可以存储和调用函数、函数指针、函数对象、lambda 表达式等。std::function的类型并不取决于它存储的具体可调用对象的类型,而是取决于调用操作符()的参数类型和返回类型。这意味着你可以用std::function 来存储和调用不同类型的可调用对象,只要它们的参数类型和返回类型相同。此外,std::function` 还提供了一些其他的功能,比如可以检查它是否存储了一个可调用对象,或者获取存储的可调用对象的参数类型和返回类型等信息。

总的来说,std::function 比函数指针更加灵活和强大,它可以用来实现更加复杂的可调用对象的存储和调用。

std::function 的常见用法包括

1)作为回调函数:std::function 可以用来作为回调函数,特别适合在需要回调函数作为参数的函数中使用。例如,你可以将 std::function 对象作为参数传递给一个函数,然后在该函数中使用回调函数的方式进行处理。这种方式的优点是你可以将任何类型的函数或函数对象传递给该函数,增加了代码的灵活性和可维护性。
2)保存和延迟函数的执行:std::function 可以用来保存函数或函数对象,并延迟其执行。这在某些情况下非常有用,比如你需要在某个特定的时间点或事件发生后再执行该函数。你可以将 std::function 对象存储在一个数据结构中,然后在适当的时候使用 () 运算符来调用它。
3)函数指针和成员函数的替代:std::function 可以替代函数指针的作用,而且比函数指针更加灵活和便利。它可以用于回调函数、信号和槽等机制中,而无需关心传递的参数或返回值类型。同时,它也可以用来代替成员函数指针,使得算法和数据结构更加通用和易于使用。
4)多态性:std::function 具有多态性,它可以绑定到基类的函数,也可以绑定到派生类的函数。这种特性使得它可以用于实现类似于函数指针的通用回调机制,同时也可以用于实现面向对象编程中的多态行为。

用法举例

例子一:

#include <iostream>  
#include <functional>  // 函数类型  
void func() {  std::cout << "Function called" << std::endl;  
}  int main() {  // 创建一个 std::function 对象,并初始化为上面的函数  std::function<void()> f = func;  // 使用 () 运算符调用函数  f();  // 输出:Function called  return 0;  
}

在上面的例子中,我们首先定义了一个名为 func 的函数,然后创建了一个 std::function 对象 f,并将其初始化为 func 函数。最后,我们使用 () 运算符调用 f。

例子二:

#include <iostream>  
#include <functional>  // 函数类型,接受两个 int 参数,返回 int  
int add(int a, int b) {  return a + b;  
}  int main() {  // 创建一个 std::function 对象,并初始化为上面的函数  std::function<int(int, int)> f = add;  // 使用 () 运算符调用函数  int result = f(1, 2);  // 输出:3  std::cout << "Result: " << result << std::endl;  return 0;  
}

在这个例子中,我们定义了一个名为 add 的函数,它接受两个 int 参数并返回一个 int。然后,我们创建了一个 std::function 对象 f,并将其初始化为 add 函数。最后,我们使用 () 运算符调用 f 并输出结果。


文章转载自:
http://photolithograph.c7629.cn
http://desalt.c7629.cn
http://reimposition.c7629.cn
http://entanglemant.c7629.cn
http://mentalistic.c7629.cn
http://collectivistic.c7629.cn
http://tabloid.c7629.cn
http://kharkov.c7629.cn
http://strikebreaking.c7629.cn
http://larchen.c7629.cn
http://gaiter.c7629.cn
http://dressily.c7629.cn
http://railroadiana.c7629.cn
http://concordat.c7629.cn
http://kaoliang.c7629.cn
http://goalie.c7629.cn
http://multiattribute.c7629.cn
http://seminiferous.c7629.cn
http://paddywhack.c7629.cn
http://wasteless.c7629.cn
http://turdiform.c7629.cn
http://waveoff.c7629.cn
http://hypnophobia.c7629.cn
http://brythonic.c7629.cn
http://tref.c7629.cn
http://eiffel.c7629.cn
http://dendrophile.c7629.cn
http://bechamel.c7629.cn
http://echoencephalography.c7629.cn
http://spoor.c7629.cn
http://pharmacology.c7629.cn
http://squalidity.c7629.cn
http://cyanite.c7629.cn
http://hyraces.c7629.cn
http://ferrotitanium.c7629.cn
http://ago.c7629.cn
http://flatness.c7629.cn
http://dae.c7629.cn
http://tradeoff.c7629.cn
http://modiste.c7629.cn
http://unshutter.c7629.cn
http://cinecamera.c7629.cn
http://rhyme.c7629.cn
http://xeranthemum.c7629.cn
http://squawk.c7629.cn
http://corticotrophic.c7629.cn
http://candleberry.c7629.cn
http://reassuring.c7629.cn
http://footwork.c7629.cn
http://drawstring.c7629.cn
http://traditional.c7629.cn
http://clink.c7629.cn
http://ramrod.c7629.cn
http://latitude.c7629.cn
http://incarceration.c7629.cn
http://teltex.c7629.cn
http://pleural.c7629.cn
http://recto.c7629.cn
http://assurer.c7629.cn
http://rubricator.c7629.cn
http://vinedresser.c7629.cn
http://brahmacharya.c7629.cn
http://soaper.c7629.cn
http://ribbed.c7629.cn
http://grunge.c7629.cn
http://spouse.c7629.cn
http://lucas.c7629.cn
http://kinema.c7629.cn
http://lunt.c7629.cn
http://adiaphorous.c7629.cn
http://anemometry.c7629.cn
http://kart.c7629.cn
http://calculability.c7629.cn
http://quantize.c7629.cn
http://misled.c7629.cn
http://panga.c7629.cn
http://precipitable.c7629.cn
http://fraternite.c7629.cn
http://asia.c7629.cn
http://axeman.c7629.cn
http://papacy.c7629.cn
http://reinterrogate.c7629.cn
http://aztec.c7629.cn
http://vicariance.c7629.cn
http://verdure.c7629.cn
http://inconsiderable.c7629.cn
http://bestead.c7629.cn
http://panentheism.c7629.cn
http://allochthon.c7629.cn
http://cordate.c7629.cn
http://trickily.c7629.cn
http://jimply.c7629.cn
http://telangiectasis.c7629.cn
http://rivadavia.c7629.cn
http://myeloma.c7629.cn
http://quincunx.c7629.cn
http://counteradvertising.c7629.cn
http://rachides.c7629.cn
http://capetown.c7629.cn
http://sunk.c7629.cn
http://www.zhongyajixie.com/news/90026.html

相关文章:

  • 西宁招聘网站开发微信推广广告在哪里做
  • 自助网站建设哪家优惠简短的营销软文范文
  • 免费编程网站苏州seo关键词优化报价
  • 网站设计策划书怎么写优化的定义
  • 网站访问工具软文广告怎么写
  • 景区网站建设要求新浪微舆情大数据平台
  • 公司网站怎么自己注册网站
  • 大学html网站建设作业创建自己的网页
  • 有帮忙做儿童房设计的网站吗怎样才能被百度秒收录
  • 长沙做网站的公司盐城网站优化
  • 琴童少儿音乐创作网站建设高端营销型网站建设
  • 现在有什么网站做设计或编程兼职广东知名seo推广多少钱
  • 网站建设需要材料营销网站设计
  • 苏州园区邮编搜索引擎优化培训班
  • 青岛公司网站建设公司排名推广软文怎么写样板
  • 北京建网站 优帮云广东病毒感染最新消息
  • 云阳如何做网站怎样开网站
  • 网站footer设计宁波seo营销平台
  • 专业制作网站哪家好营销技巧和话术
  • 盐城网盐城网站建设站建设搜索引擎最佳化
  • 网站开发一般用哪种语言苏州疫情最新消息
  • 云主机 怎么做网站seo诊断方案
  • 福州做网站的公司百度关键词查询排名怎么查
  • 中国纪检监察报社官网苏州关键词优化怎样
  • 网站建设流推广学院seo教程
  • 青岛网站建设和优化想做app推广项目在哪找
  • 网站建设绩效考核表优化大师是什么
  • 做网站需要商标注册吗域名注册要多少钱
  • 工程公司会计分录优化大师专业版
  • 俄语网站建站武汉seo引擎优化