在C ++中“bool operator()(TypeName * n)const”是什么意思

时间:2013-07-25 14:38:02

标签: c++

例如

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

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

3 个答案:

答案 0 :(得分:3)

如果传递了与Point*兼容的一个参数,则会对类型的函数调用运算符进行重载。例如,如果在类型Foo上声明了这个:

Foo foo;
Point point;

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

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

答案 1 :(得分:0)

它重载了“function-call”运算符,即operator(),它允许您将对象用作带有类型TypeName*的参数(或者可以转换为它)的函数的函子。回来一个布尔。

答案 2 :(得分:0)

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