C++仿函数和()运算符重载

群上一网友贴了一段类似仿函数用法,问大家什么意思。如下:

C++仿函数和()运算符重载_第1张图片

大家说了一通,结果提问人说代码错了,氛围有点尴尬。。。哈哈。笑完之后,借着这个机会整理下。

1)仿函数定义

仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。

2)实现例子

#include   

using namespace std;  
  
class Time  
{  
public:  

    //小括号重载 版本0 
    void operator()()  
    {  
        cout<< "version 0"<

跟提问网友贴的代码还是有点不一样的,仿函数的操作对象是类对象,而不是类指针,提问网友贴的代码是this指针。后面还看到有人说是重载了运算符->,但是重载operator ->目的是为了使一个类对象表现的像一个类型的指针一样,显然这里this已经是指针了,所以也不存在这种可能




参考:

https://blog.csdn.net/tianshuai1111/article/details/7687983

https://blog.csdn.net/todototry/article/details/1481185


你可能感兴趣的:(C++,STL,源码)