在C++中,operator()
是一个函数调用运算符,也被称为函数调用操作符。当在一个类中重载 operator()
时,该类的对象就可以像函数一样被调用,即可以使用 obj()
的形式来调用这个类的对象。
通过重载 operator()
,可以实现函数对象(也称为仿函数)的功能。函数对象是具有函数调用运算符的类的对象,可以像函数一样被调用。这样可以使得这类对象的行为更加灵活和可定制,通常用于实现各种算法、排序、查找等。
示例代码如下:
#include <iostream>
class MyFunctor {
public:
int operator()(int x, int y) {
return x + y;
}
};
int main() {
MyFunctor func;
int result = func(3, 4); // 调用 operator() 函数
std::cout << "Result: " << result << std::endl;
return 0;
}
在上面的代码中,MyFunctor
类重载了 operator()
函数,在 main
函数中创建了一个该类的对象 func
,然后通过 func(3, 4)
的形式调用了这个对象,从而执行了重载的 operator()
函数,最终得到了结果并输出。