例如
bool operator()(Point *p) const;
{return f(p->pt);}
它是否有可能返回一个布尔值,如果它是真的调用 f 吗?
Point*
对于传递一个与兼容的参数的情况,这会重载该类型的函数调用运算符。例如,如果这是在 type 上声明的Foo
:
Foo foo;
Point point;
// This calls the operator() method.
bool returnValue = foo(&point);
这个方法的主体没有什么神奇之处;它将简单地调用 function f
,传入p->pt
,并将该表达式的结果作为布尔值返回。(方法中实际发生的情况取决于 的类型f
。)
它重载了“函数调用”运算符,即operator()
,它允许您将对象用作仿函数,获取类型参数TypeName*
(或可以转换为参数)并返回布尔值。
这基本上是函数调用运算符的重载,它接受一个 Point 对象并返回一个布尔值