仿函数示例

发布时间:2023年12月24日

仿函数的通俗解释,就是使用起来像函数一样的东西。

如果针对某个class进行operator()重载,它就成为了一个仿函数。

#include <iostream>
using namespace std;

//plusElement成为了一个仿函数
template <class T>
struct plusElement {
    T operator()(const T& x, const T& y) const { return x + y; }
};

//同理,minusELement也成为了一个仿函数
template <class T>
struct minusElement {
    T operator()(const T& x, const T& y) const { return x - y; }
};

int main() 
{
    //产生仿函数对象
    plusElement<int> plusObj;
    minusElement<int> minusObj;
 
    //使用仿函数,就像使用普通函数一样
    cout << plusObj(3, 5) << endl;
    cout << minusObj(3, 5) << endl;
    
    //以下直接产生仿函数的临时对象(第一个括号),并调用之(第二个括号)
    cout << plusElement<int>()(40, 10) << endl;
    cout << minusELement<int>()(40, 10) << endl;
    
    return 0;
}

运行结果:

文章来源:https://blog.csdn.net/Jaster_wisdom/article/details/135179848
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。