一个功能对象:
我的尝试:
函数对象或函数(两个术语是同义词)只是可以被调用的任何对象,就好像它是一个函数一样。普通函数是函数对象,函数指针也是如此;更一般地说,定义operator()的类的对象也是如此。
Functors(函数对象或函数)简单地放在object +()。
在我看来,选项(3)是正确的,但我对选项(1)感到困惑,是真的吗?
你能解释一下吗?
答案 0 :(得分:0)
函数对象是类的实例,它将括号运算符定义为成员函数。当函数对象用作函数时,只要调用函数,就会调用括号运算符。请考虑以下类定义:
class biggerThanThree
{
public:
bool operator () (int val)
{ return val > 3; }
};
如果我们创建类greaterThanThree的实例,每次使用函数调用语法引用此对象时,都会调用括号运算符成员函数。
参考: