c++笔记 函数对象 函数对象基本使用
2021/10/16 1:14:32
本文主要是介绍c++笔记 函数对象 函数对象基本使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//概念:重载了函数调用操作符的类,其对象常称为函数对象 //函数对象:对函数的操作符进行重载的类 //函数对象在重载函数操作符()时,行为类似函数调用,也叫仿函数 //函数对象(仿函数)是一个类,不是一个函数 //函数对象使用: //1.函数对象在使用时,可以像普通函数一样,可以有参数,可以有返回值 //2.函数对象超出普通函数的概念,函数对象可以有自己的状态 (本质为类,可以有自己的属性) //3.函数对象可以作为参数传递 //感悟:为什么引入仿函数? //答:比如前节的set容器等,排序自定义需要一个类型变量,而非函数,但还需要体现数值间的比较,故选择仿函数 #include<iostream> using namespace std; class MyAdd { public: int operator()(int v1, int v2) { return v1 + v2; } }; //1. 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("何处云劫配审我"); myPrint("孙郎竟云何"); myPrint("人在东海,剑在东海"); cout << "myPrint调用次数为: " << myPrint.count << endl; } //3. void doPrint(MyPrint& mp, string test) { mp(test); } void test03() { //想将仿函数从调用它的函数内,传出至其他函数体内再使用 MyPrint myPrint; doPrint(myPrint, "道走不驯"); } int main() { test01(); test02(); test03(); }
这篇关于c++笔记 函数对象 函数对象基本使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-23云原生周刊:Artifact Hub 成为 CNCF 孵化项目|2024.9.23
- 2024-09-22为啥chrome查看到网页,只有5000多行,应该有1万多行才对
- 2024-09-21LangChain4j支持的API类型
- 2024-09-21企业如何判断自身的 CRM 系统需要多大的服务器配置?
- 2024-09-21拼接的xml报文,尖括号都被转移成了< 是什么原因-icode9专业技术文章分享
- 2024-09-21Svg Sprite Icon教程:从入门到实践
- 2024-09-21Svg Sprite Icon实战:从入门到上手
- 2024-09-20构建一个多PDF RAG聊天机器人:使用Langchain和Streamlit及代码
- 2024-09-20whatsapp webhook 回调的签名验证偶尔会失败是什么原因-icode9专业技术文章分享
- 2024-09-19Excel数据导出课程:初学者必备教程