-3

例如

bool operator()(Point *p) const;
    {return f(p->pt);}

它是否有可能返回一个布尔值,如果它是真的调用 f 吗?

4

3 回答 3

3

Point*对于传递一个与兼容的参数的情况,这会重载该类型的函数调用运算符。例如,如果这是在 type 上声明的Foo

Foo foo;
Point point;

// This calls the operator() method.
bool returnValue = foo(&point);

这个方法的主体没有什么神奇之处;它将简单地调用 function f,传入p->pt,并将该表达式的结果作为布尔值返回。(方法中实际发生的情况取决于 的类型f。)

于 2013-07-25T14:40:08.067 回答
0

它重载了“函数调用”运算符,即operator(),它允许您将对象用作仿函数,获取类型参数TypeName*(或可以转换为参数)并返回布尔值。

于 2013-07-25T14:40:15.710 回答
0

这基本上是函数调用运算符的重载,它接受一个 Point 对象并返回一个布尔值

于 2013-07-25T14:42:20.180 回答