0%

函数式编程的实现手段:函数对象类

2020年3月17日 下午2:03

理解函数对象:

  • 老师教的是:函数对象,在这我给他加上了一个“类”字。
  • 主要原因: 想突出函数对象其实是一个类型
  • 是类型的话,就可以和模板操作完美的联系在一起了

当定义好函数对象之后,能如何进行使用

  • 当做类型,与模板一起使用
  • 当做函数,进行函数式编程
  • 当做参数,可以用来传递、使用、返回,这样的函数是高阶函数

函数对象类定义

  • 函数对象是一个可以被当作函数来用的对象
  • 从文字理解:
    • 首先他就是对象。一个对象可以包含各种方法、属性,他也可以。
    • 函数,两个字说明了他的使用方式的不同。
      • 一般,对象都是object.function()来调用方法
      • 函数对象,调用方法是object(),其实就是利用运算符重载,实现了operator() 而已,任何一个对象都可以成为函数对象
  • lambda表达:匿名函数对象类,没有类名,或者说是没有函数名

为什么光用对象、或者函数不行

  • 光用函数:无法实现object()()这种函数式的连续操作
  • 光用对象:函数对象依然还是对象!这个说法不存在。