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

函数对象基本使用

一、函数对象概念

1.重载函数调用操作符的类,其对象常称为函数对象

2.函数对象使用重载的()时,行为类似函数调用,也叫仿函数

本质: 函数对象(仿函数)是一个类,不是一个函数

二、函数对象使用

特点:

函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值

函数对象超出普通函数的概念,函数对象可以有自己的状态

函数对象可以作为参数传递

代码示例:

#include<iostream>
using namespace std;//1.函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值
class MyAdd
{
public:int operator()(int v1, int v2){return v1 + v2;}
};void test01()
{MyAdd myAdd;cout << myAdd(10, 10) << endl;
}//2.函数对象超出普通函数的概念,函数对象可以有自己的状态
class MyPrint
{
public:MyPrint(){this->count = 0;}void operator()(string test){cout << test << endl;this->count++;}int count;//内部自己的状态
};void test02()
{MyPrint myPrint;myPrint("hello world");myPrint("hello world");myPrint("hello world");myPrint("hello world");cout << "myPrint调用的次数为:" << myPrint.count << endl;
}//3.函数对象可以作为参数传递
void doPrint(MyPrint& mp, string test)
{mp(test);
}void test03()
{MyPrint myPrint;doPrint(myPrint, "Hello C++");
}int main64()
{//test01();//test02();test03();return 0;
}

总结: 仿函数写法非常灵活,可以作为参数进行传递

http://www.lryc.cn/news/332100.html

相关文章:

  • 浅谈HTTP
  • HarmonyOS NEXT应用开发之@Provide装饰器和\@Consume装饰器:与后代组件双向同步
  • Docker 安装 | 部署MySQL 8.x 初始设置
  • linux三剑客之流编辑器sed
  • 【Android Studio】上位机-安卓系统手机-蓝牙调试助手
  • 怎样把学浪购买的课程下载下来
  • SD-WAN如何解决更有性价比地跨境网络问题
  • 第15章 File类与IO流
  • C语言基础语法-教案16(从小白到劝退之结构体初阶)
  • Linux:ip和ip协议的初步认识
  • Android12 简单的共享内存驱动实现 参考Ashmem
  • 物理安全和逻辑安全在信息安全中的重要作用
  • 每日一题 --- 滑动窗口最大值[力扣][Go]
  • TensorBoard可视化+Confustion Matrix Drawing
  • 012——LED模块驱动开发(基于I.MX6uLL)
  • 基于springboot实现房屋租赁管理系统项目【项目源码+论文说明】计算机毕业设计
  • 168.乐理基础-中古调式概述
  • 【项目实战】【Docker】【Git】【Linux】部署V2rayA项目
  • mac 切换 jdk
  • MD5加密返回32位密文字符串
  • npm常用命令技巧
  • intellij idea 使用git撤销(取消)commit
  • 【计算机网络】四层负载均衡和七层负载均衡
  • IP-guard WebServer 任意文件读取漏洞复现
  • 【IoTDB 线上小课 01】我们聊聊“金三银四”下的开源
  • 2024053期传足14场胜负前瞻
  • C语言------冒泡法排序
  • C#(C Sharp)学习笔记_Enum枚举类型【十三】
  • 乐知付-如何制作html文件可双击跳转到指定页面?
  • 电工技术学习笔记——直流电路及其分析方法