仿函数

来源:互联网 发布:轻而易举软件培训视频 编辑:程序博客网 时间:2024/04/28 13:44

 class Add
{
public:
 int operator()(int a, int b)
 {
  return a+b;
 }
};

void main()
{

 Add myAdd;
 printf("%d\n",myAdd(2,3)); //  myAdd(2,3) 相当于myAdd.operator(2,3);

 system("pause");
}

 

//仿函数的优点:

1,仿函数可以生成不同的实例对象,从而使使用过程的互相影响隔绝。而一般函数总是以类的形式进行:导致不同的使用过程可能相互影响。

打个比方: 统计某文件夹里的所有文件数目和大小等信息,函数的参数可能相当多,而且不一定总是用到。

如果不用仿函数你会很吐血, 因为如果采用全局变量,在你运行统计函数(一般函数)时,有第三方又调用了这个函数怎么办? 如果采用局部变量,那么参数这么多,每次调用总是要填也不是办法。

但仿函数就可以通过生成不同的对象,使不相互影响。

 

1,可以初始化。

2,由于有成员变量,可以实现不同时期同样调用的不同状态。

3,可以提供继承体系。

4,可以支持用户设计出模板接口。

5,仿函数通常比一般函数更快。

 

原创粉丝点击