如何调用bool函数

时间:2010-04-20 20:15:50

标签: c++ function

我没有看到任何解决我特定代码问题的内容。

我在课堂上有一个bool功能; bool函数名为:

bool Triplet::operator ==(const Triplet& operand)const {
    if( (data[0] == operand.data[0]) &&
            (data[1] == operand.data[1]) &&
            (data[2] == operand.data[2]))
        return true; 
        ...

我正试图在Main中调用它,但是只是在调用正确时遇到问题。显然,如果我在措辞中遗漏了任何东西,它会给出一个错误,我只有很少的语句,如果我尝试使用函数的整个措辞,我会得到错误,我需要一个分号,但我已经有了在通话结束时分号,所以我知道别的东西是错的,我根本无法弄清楚出了什么问题! 任何帮助,将不胜感激!

提前致谢。

3 个答案:

答案 0 :(得分:11)

你可以使用==来调用它(这就是运算符重载的作用;它会重载运算符的含义):

Triplet a;
Triplet b;

if (a == b) //< calls your operator==

您也可以使用函数调用语法调用它:

if (a.operator==(b)) //< also calls your operator==

但您通常不希望或不需要这样做。

您可能需要这样做的一个案例是,如果由于某种原因您有一个操作员模板,其模板参数无法从参数中推断出来(operator==很少见,但我看到了用于operator[]之前。)

答案 1 :(得分:8)

这是一个C ++运算符重载,它的设计使它可以改变普通运算符的行为:

Triplet a, b;
if (a == b) // calls Triplet::operator==()

如果确实想要,您可以按名称调用运营商:

if (a.operator==(b))

答案 2 :(得分:2)

bool只是返回类型。它与调用函数的方式无关。正如在James的例子中,这个函数是一个运算符,因此你将像使用普通语法一样使用运算符来调用它。