C++中自己定义函数对象

来源:互联网 发布:mac pretty boy好看吗 编辑:程序博客网 时间:2024/06/03 16:21

创建函数对象

 

  除了使用内置的函数对象外,我们还可以创建自己的函数对象,为了达到这个目的,只需要创建

一个重载operator()函数的对象。然而,为了获得最大的灵活性,你会希望使用下面的这些类中

的一个,这些类被STL定义为你所创建的函数对象的基类。

这些模板类为函数对象使用的一般数据类型提供具体的类型名。虽然从技术上讲这些模板

类很便利,但是它们几乎总是在创建函数对象时才被用到。

 

下面的程序演示了一个定制的函数对象。

 

我们注意到,reciprocal()有两个重要的方面。第一,它继承了基类unary_function,这使它可

以访问argument_type和result_type类型。第二,它定义了operator(),从而可以返回其参

数的倒数。一般来说,为了创建一个函数对象,只需要继承适当的基类并根据需要重载operator()。

原创粉丝点击