C++ functor 仿函数

在C++中,仿函数不是一个函数,是一个类,这个类实现了函数的功能。

如果我想实现一个求和的功能:定义一个Sum类,让其中的()函数实现这个功能,代码如下:

class Sum {
public:
	Sum() = default;
	virtual ~Sum() {}

    int operator()(const vector& nums) {
        long sum = 0;

        for (auto& item : nums) {
            sum += item;
        }

        return sum;
    }

    Sum(const Sum& src) = delete;
    Sum& operator=(const Sum& src) = delete;
};


int main() {
    vector v{2, 3, 4, 10};
    Sum s;
    int sum = s(v);
    std::cout << "sum =" << sum << std::endl;

    return 0;
}

结果如下:

C++ functor 仿函数_第1张图片

你可能感兴趣的:(C++,c++11)