温馨提示×

functor在c++中的实现方式

c++
小樊
83
2024-08-17 18:49:35
栏目: 编程语言

在C++中,functor是一个可被调用的对象,类似于函数指针。它可以像函数一样被调用,但是可以拥有更多的状态信息和行为。在C++中,functor通常是一个重载了函数调用运算符operator()的类。

以下是一个示例实现一个简单的functor类:

#include <iostream>

class AddFunctor {
public:
    AddFunctor(int value) : value(value) {}

    int operator()(int x, int y) {
        return x + y + value;
    }

private:
    int value;
};

int main() {
    AddFunctor addFunctor(10);
    
    std::cout << addFunctor(5, 7) << std::endl; // 输出:22
    
    return 0;
}

在上面的例子中,AddFunctor类重载了operator()函数,它接收两个整数参数并返回它们的和再加上functor中存储的值。通过创建一个AddFunctor对象并调用它,我们可以像调用函数一样使用这个functor。

使用functor的好处包括可以存储状态信息、可以方便地通过重载operator()函数实现不同行为、可以方便地传递给STL算法等。

0