在C++中,仿函数不是一个函数,是一个类,这个类实现了函数的功能。
如果我想实现一个求和的功能:定义一个Sum类,让其中的()函数实现这个功能,代码如下:
class Sum {
public:Sum() = default;virtual ~Sum() {}int operator()(const vector<int>& 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<int> v{2, 3, 4, 10};Sum s;int sum = s(v);std::cout << "sum =" << sum << std::endl;return 0;
}
结果如下: