函数对象

函数对象

一个类重载了圆括号运算符() 则该类的对象就成为了函数对象
一般只有函数和函数指针后面会跟圆括号
而这里是一种新的形式 看上去像是一个函数调用 但是这是一个对象
什么样的形参才能和函数相对应呢? 函数指针 注意函数指针的优先级问题 加上小括号表示为指针

实参可以是一个临时变量或者对象 可以没有名字 因为只起一个给形参传递值得作用 形参有名字就可以了

函数对象 作用很有意思 解决了函数重载都不能完成的事情
首先 函数如果没有重载那么一个函数只能做一件事情 只能对一种数据结构操作
这样是十分傻逼和低效的 因为对不同的数据结构操作同样的事情 就要写无数类似的函数 简直浪费
函数重载只能解决 对于不同的数据结构的操作问题 与此同时 如果对于同样的一种数据我们要进行同样的操作但是操作中间某个参数的大小需要改变
那么每改变一次就要对原函数重新写一次 或者就要写多个只是操作参数不同的函数 又是写重复的东西 简直浪费
而函数对象可以解决这样的问题
将参数封装在对象里 再对圆括号进行重载 这样我们每次只要实例化不同的对象 那么对应的对象的参数就是不同的 而且圆括号已经重载
在调用对象的圆括号操作符的时候也可以达到调用相应函数的作用 那么只要写一个类就可以通过实例化不同的对象达到实现相同类型的函数作用但是不同操作参数的作用 十分有意思!!
再加上类模板的性质 同样可以对不同的数据结构作用 所以函数对象可以说很全面 !!

函数对象类模板 :
头文件
equal_to
greater
less

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值