C++ 可调用对象

文章目录

  • 概述
    • 1.函数以及函数指针
      • 函数
      • 函数指针
    • 2.成员函数指针
    • 3.lamda表达式
    • 4.函数对象(Func)
    • 5.通过 std::function 包装的可调用对象
  • 小结

概述

在C++中,“可调用对象”(Callable)是一个可以被调用的对象,它可以接受参数并产生结果。可调用对象可以是函数、函数指针、成员函数指针、lambda表达式、函数对象(functor)、以及通过 std::function 包装的任何可调用实体。

1.函数以及函数指针

函数

void Func() {// 函数体
}

函数指针

void (*funcPtr)() = Func;

2.成员函数指针

class MyClass {
public:void memFunc() {// 成员函数体}
};
// 成员函数指针
void (MyClass::*memFunc)() = &MyClass::memFunc;

3.lamda表达式

这个就不多说了,之前写过,可以去看看。

4.函数对象(Func)

struct Func{int operator()(int x) {return x * 3;}
};

这个是重载了 operator() 操作符。stl里大量使用了这种写法,如下图:
在这里插入图片描述

5.通过 std::function 包装的可调用对象

std::function<void()> func = myFunc;
void callFun(std::function<void()> func) {func();
}
callFun(myFunc); // 传递函数
callFun(funcPtr); // 传递函数指针
callFun(Func()); // 传递函数对象

std::function 是一个比较通用的,在stl模板中的。还有一种调用是lamda表达式的,都经常使用。

小结

这个总结写了可调用对象,C++中常用的一些调用形式。像函数,函数指针,lamda表达式(这个之前写过),函数对象,通过std::function包装的可调用对象;这些都常用,感兴趣,可以学习学习。感觉还不错,OK,翻篇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 956 F. array-value 【01Trie查询异或最小值】

题意 给定一个非负整数数组 a a a 对每个长度至少为 2 2 2 的子数组&#xff0c;定义其权值为&#xff1a;子数组内两两异或值最小值 即 b ⊂ a [ l , r ] , w ( b ) min ⁡ l ≤ i < j ≤ r { a i ⨁ a j } b \subset a[l, r], \quad w(b) \min_{l \leq i < j \le…

python--实验6 字典与集合

知识点 集合 集合&#xff08;Set&#xff09;在Python中是一种基本的数据结构&#xff0c;用于存储无序且不重复的元素。以下是关于集合的详细介绍&#xff1a; 集合的定义和特点 无序性&#xff1a;集合中的元素没有特定的顺序。 不重复性&#xff1a;集合中的元素都是唯…

喜讯|华院钢铁行业大模型入选“2024全国企业新质生产力赋能典型案例”

7月2日&#xff0c;由中国科学院主管、科学出版社主办的商业周刊《互联网周刊》&#xff08;CIW&#xff09;联合德本咨询&#xff08;DBC&#xff09;、中国社会科学院信息化研究中心&#xff08;CIS&#xff09;发布了“2024全国企业新质生产力赋能典型案例”。华院计算技术&…

巴基斯坦火爆的slots游戏借力Facebook广告获客优势分析

巴基斯坦火爆的slots游戏借力Facebook广告获客优势分析 在巴基斯坦&#xff0c;Slots游戏凭借其独特的魅力和玩法&#xff0c;深受玩家的喜爱。而在众多的推广渠道中&#xff0c;Facebook广告代投凭借其显著的优势&#xff0c;成为了Slots游戏在巴基斯坦市场推广的重要选择。以…

基于Spring Boot的高校智慧采购系统

1 项目介绍 1.1 摘要 随着信息技术与网络技术的迅猛发展&#xff0c;人类社会已跨入全新信息化纪元。传统的管理手段因其内在局限&#xff0c;在处理海量信息资源时日渐捉襟见肘&#xff0c;难以匹配不断提升的信息管理效率和便捷化需求。顺应时代发展趋势&#xff0c;各类先…

降压转换器-从分立电路到完全集成的模块

降压转换器已存在了一个世纪&#xff0c;是当今电子电路中不可或缺的一部分。本文将讲述一个原始分立式器件如何演变成可以处理数百瓦功率的微型高集成器件。 降压转换器是将输入电压转换为较低的输出电压&#xff0c;基本原理如图 1所示。最初&#xff0c;开关 SW1 关断&…

【k8s中安装rabbitmq】k8s中安装rabbitmq并搭建镜像集群-hostpath版

文章目录 简介一.条件及环境说明二.需求说明三.实现原理及说明四.详细步骤4.1.规划节点标签4.2.创建configmap配置4.3.创建三个statefulset和service headless配置4.4.创建service配置 五.安装完后的配置六.安装说明 简介 k8s集群中搭建rabbitmq集群服务一般都会用到pvc&#x…

中国科学院院士丁汉:人形机器人——机器人与人工智能结合的爆发点

工业制造是国民经济的重要支柱&#xff0c;是实现发展升级的国之重器。早在 2002 年&#xff0c;党的十六大就曾提出&#xff0c;坚持以信息化带动工业化&#xff0c;以工业化促进信息化&#xff0c;走出一条科技含量高、经济效益好、资源消耗低、环境污染少、人力资源优势得到…

DevEco Studio加上AI-通义灵码插件安装

一、下载通义灵码离线安装包 打开官网&#xff0c;https://tongyi.aliyun.com/lingma/download 下载的ZIP文件是&#xff1a;tongyi-jetbrains-latest.zip 二、设置中插件内安装DevEco插件 选择刚下载的ZIP包&#xff0c;确认安装即可。 三、应用确定 如果没有效果就重启DevE…

权力之望怎么下载客户端 权力之望客户端一键下载

权力之望是一款MMORPG新作&#xff0c;支持PC和APP双版本游玩&#xff0c;玩家可以在这里体验自由成长和无限探索的乐趣&#xff0c;并加入这场声势浩大、危机四伏的夺权之战中。游戏的自由度极高&#xff0c;我们在创建角色时就可以感受的到&#xff0c;设有54种能力和60多种职…

升级iOS18有问题?学会这2招能解决90%iOS问题!

在 iOS 18beta发布后&#xff0c;有部分朋友升级后表示遇到了各种奇怪问题&#xff0c;比如升级卡在Apple Logo&#xff0c;黑屏&#xff0c;无限重启&#xff0c;卡在恢复模式&#xff0c;程序闪退&#xff0c;电池消耗过快&#xff0c;发烫等问题。 于是&#xff0c;小编决定…

IP地址与网络监控

在当今的数字时代&#xff0c;网络安全已成为企业和个人都十分关注的重要话题。通过IP地址进行网络监控&#xff0c;可以有效地检测异常流量和可疑活动&#xff0c;从而保护网络免受潜在威胁。本文将详细讨论如何利用IP地址进行网络监控&#xff0c;以及如何识别和应对异常流量…

【C++题解】1290 - 二进制转换十进制

问题&#xff1a;1290 - 二进制转换十进制 类型&#xff1a;进制转换 题目描述&#xff1a; 请将一个 25 位以内的 2 进制正整数转换为 10 进制&#xff01; 输入&#xff1a; 一个 25 位以内的二进制正整数。 输出&#xff1a; 该数对应的十进制。 样例&#xff1a; 输…

【大数据】什么是数据湖?一文揭示数据湖的本质

很多人跟我一样&#xff0c;对于数据湖充满好奇&#xff0c;也许还读了不少数据湖文章&#xff0c;但无论别人怎么说&#xff0c;你还是会觉得难以把握数据湖的本质。 有些人会望文生义说&#xff0c;数据湖嘛&#xff0c;就是什么东西都可以往里面扔&#xff0c;特别是对非结构…

Java面试八股之MySQL如何使用explain优化SQL和索引

MySQL如何使用explain优化SQL和索引 在MySQL中&#xff0c;EXPLAIN是一个非常有用的工具&#xff0c;用于分析和优化SQL查询。它可以帮助你理解查询执行计划&#xff0c;包括如何使用索引、表的连接方式、是否使用了临时表或文件排序等。以下是一些使用EXPLAIN来优化SQL查询和…

【区块链+跨境服务】粤澳跨境数据验证平台 | FISCO BCOS应用案例

立足深化大湾区一体化融合的发展格局&#xff0c;实现跨境数据的互联互通是促进高水平跨境合作的必要前提&#xff0c;然而&#xff0c;在“一 国两制三法域”的背景下&#xff0c;三地监管存在显著差异&#xff0c;机构间直接跨境传输个人数据门槛较高&#xff0c;过去也缺乏可…

docker-1

1.因为docker和宿主机的端口映射&#xff0c;本质是内核的流量转发功能 需要开启 2.docker部署参考前文&#xff0c;镜像无法拉取&#xff0c;配置 阿里云 镜像加速器 3.docker网络流量走向&#xff1f; 主机---宿主机网卡ens33---docker0网桥--docker端口映射生成的虚拟网…

【2024_CUMCM】层次分析法

打分法解决评价类问题 主观性较强&#xff0c;根据权重表格计算得分&#xff08;权重乘以分数再相加&#xff09; 例题 避免直接权重&#xff0c;会导致多次填写不一致 思想&#xff1a;两两比较推测出权重 判断矩阵 上图是层次分析法的判断矩阵&#xff0c;对角线全为1&…

Spring Cloud Alibaba -- 分布式定时任务解决方案(轻量级、快速构建)(ShedLock 、@SchedulerLock )

文章目录 一、 ShedLock简介二、 SchedulerLock三、基于Mysql方式使用步骤1.建表2.引入依赖3.Mysql连接配置4.ScheduledLock配置5.启动类配置6.创建定时任务7.启动多个项目服务进行测试8.SchedulerLock注解说明 四、使用注意事项 一、 ShedLock简介 ShedLock 是一个用于 Java …

国产鸿道Intewel操作系统与Codesys高实时虚拟化运动控制解决方案

随着运控行业的快速发展&#xff0c;实时与非实时业务的融合应用需求日益增长。例如在机器视觉处理领域&#xff0c;无论是在Windows还是Linux平台上&#xff0c;传统实时操作系统无法与非实时操作系统如Windows或Linux兼容&#xff0c;不能充分利用Windows或者Linux系统的生态…