网站首页 > 基础教程 正文
然后我们再来看函数调用运算符重载,
其实这个,重载后的,函数调用运算符有点像,仿函数,什么是仿函数,一会我们再说
我们去写一个MyPrint类
里面重载函数调用运算符,可以看到函数调用运算符的重载的写法
operator()(),这样的写法在java中是没有的
然后,我们传入一个test参数,然后打印这个参数
上面报错了,需要引入string包
然后我们在test01,方法中,测试
先去创建一个myPrint对象,然后,
直接调用myPrint("hello world");
可以看到,这里传入helloword的时候,跟调用一个方法一样,看起来.
我们执行可以看到,打印出了hello world,木有问题
然后我们再去写一个方法MyPrint02,这是个全局函数.
然后我们在test01中调用.
执行看结果,没问题对吧,但是可以看出来,使用函数调用运算符重载和
直接使用函数调用,是非常非常像的,所以我们把,
上面,我们这种,通过重载函数调用运算符,实现的,通过对象的调用,传入参数,
实现的函数调用运算符重载函数的调用,叫做仿函数.
可以看到,上面有说明
然后,我们可以再去写一个类,MyAdd
可以看到,里面也写了一个,函数调用的运算符重载函数.
我们在test02测试方法中,创建一个,
myadd对象,然后打印,结果去看看
可以看到没问题对吧,
然后这就说明了,仿函数没有一种固定的写法.
可以看到,我们这次写的这个仿函数和之前写的那个仿函数的,参数不一样,
返回值也不一样.
然后我们这里再去看一下,这里提出一个概念,
就是匿名函数对象,
可以看到上面的写法,MyAdd()(100,100),
这里实际上MyAdd(),其实就是返回了一个对象,然后
后面那个(100,100),是调用了,对函数调用运算符的重载函数,
,并且,这个时候,MyAdd(),这样写,会创建一个对象,而且这个对象,没有名字
所以这种方式创建的对象,也叫匿名函数对象.
并且,这个匿名函数对象,的作用域只在这一行中有效.出了这一行就不用了.
所以,当我们,只想使用一次,就销毁这个对象的这种应用场景的时候,就可以
用这个,匿名函数对象.
可以看到,执行结果也没问题.
猜你喜欢
- 2025-03-29 C++类型转换函数:将当前类的类型转换为其它类型
- 2025-03-29 C++中两个类相互引用的解决办法(mfc两个类互相调用)
- 2025-03-29 C++类的三种继承方式:public/protected/private
- 2025-03-29 C++启蒙之旅--模板类为何物(c++模板的用法)
- 2025-03-29 C++类继承(c++类继承final)
- 2025-03-29 C++类的两种不同嵌套方式的实现与分析
- 2025-03-29 面试经验:68个C/C++常见面试题汇总(含答案)
- 2025-03-29 大话C++语言:类继承与派生(类的继承是指派生类继承基类的?)
- 2025-03-29 【C++编程语言】之 类和对象——静态成员
- 2025-03-29 C++友元类和友元函数是什么-Linu C++第63讲
- 最近发表
-
- 碎片时间学Python-01安装Python(python详细安装教程3.8)
- Python安装(python安装教程)
- Python pip安装与使用步骤(python3.6 pip安装)
- 第二篇:如何安装Python并运行你的第一个程序
- Python入门教程:安装(python安装教程2020)
- 常用的Python库安装方法(Python实用教程)
- Python下载与安装教程(很详细)(python下载安装教程3.9.1)
- python安装教程(小白入门)(python安装详细步骤)
- 详解pip的基本使用和离线安装Python第三方库
- (一)从零开始安装Python(然后安装python)
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- c++教程 (58)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)