分享知识

与大家一起分享知识

C++博客 首页 新随笔 联系 聚合 管理
  19 Posts :: 3 Stories :: 45 Comments :: 0 Trackbacks
仿函数就是使对象使用行为看上去像个函数。
函数的使用是这样:
Function(param1,param2,...);
而对象的使用是这样:
Object.memberfunction(param1,param2...);
而仿函数对象的使用是这个样的
Object(param1,param2,...);
这样我们可以看出,从外表上看,仿函数对象和函数是一个东西。呵呵,当然他们是不同的。他们一样   不过是在使用的外形上一样罢了。

    一个仿函数类如下定义
    class ObjectFunction
    {
        .......
        public:
            返回的类型 operator() ([param1,param2,...]);
     };

     例1
     class ObjectFunction1
     {
          .......
          public:
              void operator() () { count << "No Param ObjectFuntion" << endl;
      };

      例2
      class ObjectFunction2
      {
           ........
           public:
               bool operator() (int x)
               {
                   count << "Have Param ObjectFuntion" << endl;
                   count << "This is ObjectFuntion's Param" << x << endl;

                   return true;
                }
         }

         仿函数的关键是要实现 operator() 运算符。
posted on 2006-04-02 21:59 史传红 阅读(215) 评论(0)  编辑 收藏 引用 所属分类: C/C++细节知识

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理