C++ 用两个参数重载运算符bool意味着什么?
在作业中,我被告知为某个类实现C++ 用两个参数重载运算符bool意味着什么?,c++,casting,overloading,operator-keyword,C++,Casting,Overloading,Operator Keyword,在作业中,我被告知为某个类实现bool操作符()(const T&,const T&)。重载bool运算符意味着允许将对象隐式转换为bool。用两个参数重载它意味着什么?这些参数是如何在调用端传递的?这是如何使用的?这不是“运算符bool”,而是带有两个T参数的operator(),返回一个bool。换句话说,它是一个二元谓词。您可以这样使用它: struct Foo { bool operator()(const T&, const T&); // should proba
bool操作符()(const T&,const T&)
。重载bool运算符
意味着允许将对象隐式转换为bool
。用两个参数重载它意味着什么?这些参数是如何在调用端传递的?这是如何使用的?这不是“运算符bool”,而是带有两个T
参数的operator()
,返回一个bool
。换句话说,它是一个二元谓词。您可以这样使用它:
struct Foo
{
bool operator()(const T&, const T&); // should probably be const
};
...
Foo f;
T t1, t2;
bool b = f(t1, t2);
这不是“运算符bool”,而是带有两个T
参数的operator()
,返回一个bool
。换句话说,它是一个二元谓词。您可以这样使用它:
struct Foo
{
bool operator()(const T&, const T&); // should probably be const
};
...
Foo f;
T t1, t2;
bool b = f(t1, t2);
将
运算符bool
与运算符()
与返回类型bool混淆。赋值是关于后者的。您将运算符bool
与运算符()
与返回类型bool混淆。作业是关于后者的。噢。。所以它只是重载()
操作符。。。谢谢:)哦。。所以它只是重载()
操作符。。。谢谢:)你到底要做什么<代码>运算符bool或运算符()
?在问题的标题/文本中,您谈到了操作员bool
,但您发布的声明是针对操作员()
。那么,它应该是什么?作业中到底写了什么?你到底要做什么<代码>运算符bool或运算符()
?在问题的标题/文本中,您谈到了操作员bool
,但您发布的声明是针对操作员()
。那么,它应该是什么?作业里到底写了什么?