C++中函数对象(仿函数)的基本使用

2023-11-06

什么是函数对象,重载函数调用操作符的类,称其为函数对象。 函数对象使用重载的“()”,行为类似函数调用,也叫仿函数

1.函数对象在使用的时候,可以像普通函数那样调用,可以有参数,有可以有返回值,但本质上并不是一个函数,而是一个对象

//,类名
class MyAdd
{
public :
	int operator()(int v1, int v2)
	{
		return v1 + v2;
	}
};

//仿函数使用
void test01()
{
	class MyAdd myAdd;
	int res = myAdd(1,5);

	cout << "res is " << res << endl;
}

2.函数对象超出了普通函数的概念,函数对象可以有自己的状态,这是普通函数不具备的。比如说。

class MyPrint
{
	 
public:
	void operator()(string test)
	{
		cout << test << endl;
		this->count++;
	}
	MyPrint()
	{
		this->count = 0;
	}
	int count;
};


void test02()
{
	MyPrint myPrint;
	myPrint("hello world");
	myPrint("hello world");
	myPrint("hello world");
	myPrint("hello world");
	myPrint("hello world");

	cout << "myPrint调用次数 "
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++中函数对象(仿函数)的基本使用 的相关文章

随机推荐

  • Office 2021 简体中文离线安装包下载地址

    Office 2021 简体中文离线安装包下载地址 一 专业增强版 强烈推荐 http officecdn microsoft com pr 492350f6 3a01 4f97 b9c0 c7c6ddf67d60 media zh cn
  • web前端技术笔记()js对象方法讲解

    不带参函数的调用
  • python sqlalchemy 动态创建表,,或动态修改__tablename__的两种方法

    最近在学习sqlalchemy 有个动态修改 tablename 的需求 搜索了好几天 没有太完美的答案 要么看不懂 要么比较古老了 通过研究 整理以下几种sqlalchemy动态修改 tablename 的方法 一 函数封装table m
  • springboot+vue+elementui+阿里云oss上传文件

    才做完课程设计没多久 本来打算早点写这一篇文章 但是由于太懒了 就拖延了好几天 今天没什么事情 就打算写下一篇关于文件上传我文章 希望可以帮助到大家 需要准备 配置好maven 购买阿里云oss 第一步 导入指定的依赖
  • 浅谈测试用例设计

    一 测试用例为什么存在 1 1 定义 测试用例 Test Case 是指对特定的软件产品进行测试任务的描述 体现测试方案 方法 技术和策略 测试用例内容包括测试目标 测试环境 输入数据 测试步骤 预期结果 测试脚本等 最终形成文档类的输出
  • 华为交换机SSH和telnet登录配置

    华为交换机SSH和telnet登录配置 一 网络拓扑 二 SW2配置telnet 1 SW2配置 2 R1登录验证 三 SW2的ssh登录配置 1 生成本地密钥对 2 SW2配置命令 3 R1登录 四 配置console口密码 1 配置命令
  • 红黑树

    写在前面 当在10亿数据进行不到30次比较就能查找到目标时 不禁感叹编程之魅力 人类之伟大呀 学红黑树有感 终于 在学习了几天的红黑树相关的知识后 我想把我所学所想和所感分享给大家 红黑树是一种比较难的数据结构 要完全搞懂非常耗时耗力 红黑
  • 约束布局的使用(二)

    主要介绍app layout constraintWidth max app layout constrainedWidth app layout constraintDimensionRatio和Guideline的使用 一 app la
  • 无锁队列-使用hazard指针解决ABA问题

    无锁队列 使用hazard指针解决ABA问题 分类 网络安全 工具使用 文章 实现一个无锁队列 原子操作使用了tbb atomic ABA问题使用hazard指针解决 无锁队列实现 查看文本 打印 msque hpp Created on
  • Leetcode76 最小覆盖子串题解

    题目网址 https leetcode cn com problems minimum window substring 题目分析 这道题目 明显之处在于 我们需要在字符串 s 中框出一个窗口 来判断这个窗口中的子串是否覆盖了 t 如下图所
  • 2021-02-08

    学习目标 窗口函数等 天池龙珠计划SQL训练营 学习内容 5 1窗口函数 5 1 1窗口函数概念及基本的使用方法 5 2窗口函数种类 5 2 1专用窗口函数 5 2 2聚合函数在窗口函数上的使用 5 3窗口函数的的应用 计算移动平均 5 3
  • 工作失误点反思

    工作前考虑 1 查明工作服务对象 依赖对象 这个工作依赖于什么 为了什么 前置条件是否允许 2 是否有人做过 是否要重用 重用要考虑两者关系 工作时考虑 1 效率最高位 易读度第二位 编写复杂度最后位 2 头文件 格式 注释
  • 黄哥通过代码来说明:python语法糖

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 下面用一个例子来说明 coding utf 8 foo decorator foo 语句的作用是将foo函数作为参数传递到decorator 返回值赋值给foo 那么foo
  • Linux基础命令

    Linux基础命令 ls 列出 英文全称 list 格式 ls options 选项 arges 参数 root localhost ls l 总用量 4 rw 1 root root 1297 3月 18 02 38 anaconda k
  • log level

    一 LK层 首先 在LK中 有一个对log打印级别的控制文档 其路径一般为 vendor mediatek proprietary bootable bootloader lk include debug h 以mtk平台为例 在inclu
  • 机器学习-

    可用数据集 kaggle UCI scikit learn kaggle 网址 https www kaggle com datasets UCI 网址 https archive ics uci edu ml scikit learn 网
  • UE4 安卓AR 识别图片

    UE4 安卓AR 识别图片 开启一个插件 准备一个只有玩家出生点的场景 这个场景用来做识别图片的 新建一个游戏模式 设置好默认的pawn类 一个摄像机就行了 代表手机开启AR会话后的那个相机 然后gamemode 事件开始运行 就直接开启A
  • C/C++堆溢出(stack overflow)的解决

    问题 堆溢出 stack overflow 解决 1 在VS里面设置 属性 链接器 系统 堆栈保留大小 2 通过代码 第一个值是堆栈的保留空间 第二个值是堆栈开始时提交的物理内存大小 堆栈改变为100M pragma comment lin
  • 用Arduino和蓝牙模块做一个开门装置

    用Arduino和蓝牙模块做一个开门装置 闲来无事 给门上装一个不用钥匙开门的装置 如图 学校很老的锁也搞不出什么花样了 就拿个舵机拉根杜邦线拽着锁 很简单的东西 做着玩玩 好吧 我承认看着有点 低电平 用的好像是HC04蓝牙模块吧 就网上
  • C++中函数对象(仿函数)的基本使用

    什么是函数对象 重载函数调用操作符的类 称其为函数对象 函数对象使用重载的 行为类似函数调用 也叫仿函数 1 函数对象在使用的时候 可以像普通函数那样调用 可以有参数 有可以有返回值 但本质上并不是一个函数 而是一个对象 类名 class