用两个参数重载操作符bool是什么意思?

时间:2014-10-06 14:45:10

标签: c++ casting overloading operator-keyword

在作业中,我被告知要为某些课程实施bool operator()(const T&, const T&)。重载bool operator意味着允许将对象隐式转换为bool。用两个参数重载它是什么意思?这些参数如何在主叫方面传递?这是怎么用的?

2 个答案:

答案 0 :(得分:5)

这不是“operator bool”,而是operator(),有两个T参数,返回bool。换句话说,它是二元谓词。您可以像这样使用它:

struct Foo
{
  bool operator()(const T&, const T&); // should probably be const
};

... 
Foo f;
T t1, t2;
bool b = f(t1, t2);

答案 1 :(得分:1)

您将operator booloperator()混淆为返回类型bool。作业是关于后者的。