Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何调用布尔函数_C++_Function - Fatal编程技术网

C++ 如何调用布尔函数

C++ 如何调用布尔函数,c++,function,C++,Function,我没有看到任何解决我的特定代码问题的东西 我在一个类中有一个布尔函数;bool函数的名称为: bool Triplet::operator ==(const Triplet& operand)const { if( (data[0] == operand.data[0]) && (data[1] == operand.data[1]) && (data[2] == operand.data[2]))

我没有看到任何解决我的特定代码问题的东西

我在一个类中有一个布尔函数;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; 
        ...
我正试着打电话给它的主要,但有问题只是得到正确的电话。显然,如果我在措辞中遗漏了任何东西,就会出现一个错误,我的Arugument太少,如果我尝试使用函数的整个措辞,我会得到一个错误,我需要一个分号,但我在调用结束时已经有了一个分号,所以我知道其他地方出了问题,我根本无法找出问题所在! 任何帮助都将不胜感激

提前感谢。

您可以使用==调用它,这就是运算符重载的作用;它重载运算符的含义:

Triplet a;
Triplet b;

if (a == b) //< calls your operator==
Triplet a, b;
if (a == b) // calls Triplet::operator==()
也可以使用函数调用语法调用它:

if (a.operator==(b)) //< also calls your operator==
但你通常不想或不需要这样做

您可能需要这样做的一种情况是,如果出于某种原因,您有一个运算符模板,它的模板参数无法从运算符==的参数中推导出来,但我以前见过运算符[]使用的参数。

您可以使用==调用它,这就是运算符重载的作用;它重载运算符的含义:

Triplet a;
Triplet b;

if (a == b) //< calls your operator==
Triplet a, b;
if (a == b) // calls Triplet::operator==()
也可以使用函数调用语法调用它:

if (a.operator==(b)) //< also calls your operator==
但你通常不想或不需要这样做


一个案例,你可能需要做的是,如果你有一个操作符模板,它有模板参数,它是不能从操作符==的参数中推导出来的,但是我以前见过用于运算符[]的。

这是一个C++运算符重载,它被设计成可以改变正常算子的行为:< /p>
Triplet a;
Triplet b;

if (a == b) //< calls your operator==
Triplet a, b;
if (a == b) // calls Triplet::operator==()
如果你真的想,你可以叫接线员的名字:

if (a.operator==(b))

这是一个C++运算符重载,它被设计成可以改变正常操作符的行为:

Triplet a;
Triplet b;

if (a == b) //< calls your operator==
Triplet a, b;
if (a == b) // calls Triplet::operator==()
如果你真的想,你可以叫接线员的名字:

if (a.operator==(b))

bool只是返回类型。它与函数的调用方式无关。在James的例子中,这个函数是一个操作符,因此您将像在正常语法中一样使用操作符来调用它

bool只是返回类型。它与函数的调用方式无关。在James的例子中,这个函数是一个操作符,因此您将像在正常语法中一样使用操作符来调用它

发布不起作用的代码和实际的编译器错误会有所帮助。是的,这是对MAIN下的一个答案的回答。下面是函数下面的部分代码:bool Triplet::operator==const Triplet&operanconst{ifdata[0]==operand.data[0]&&data[1]==operand.data[1]&&data[2]==operand.data[2]return true;…但是我的序言是主要的:我正在尝试调用上面的主要代码。我将尝试从你们所有人那里收到的一些回复,看看它们中是否有任何一个可以用于上面的代码。谢谢你们的帮助!因为主要代码不起作用,所以这是您应该发布的代码。这就是我们要求您发布的代码r、 发布不起作用的代码和实际的编译器错误会有所帮助。是的,这是MAIN下一个答案的答案。下面是函数下的部分代码:bool Triplet::operator==const Triplet&operanconst{ifdata[0]==operand.data[0]&&data[1]==operand.data[1]&&data[2]==操作数。数据[2]return true;…但是我的序言是主要的:我正在尝试调用上面的主要代码。我将尝试从你们所有人那里收到的一些回复,看看它们中是否有任何一个可以用于上面的代码。谢谢你们的帮助!因为主要代码不起作用,所以这是您应该发布的代码。这就是我们要求您发布的代码r、 谢谢,我用了三元组a;三元组b;等等。非常感谢你们的回答。我真的很感激!@Troubadour:D'oh!教我起床后编码10分钟:除了是a.operator==b。谢谢,我用了三元组a;三元组b;等等。非常感谢你们的帮助答案。我真的很感激!@Troubadour:D'oh!教我起床后编码10分钟:谢谢,我用了三元组a;三元组b;等等。它很有效。非常感谢你们的回答。我真的很感激!谢谢,我用了三元组a;三元组b;等等。它很有效。非常感谢你们的回答。我真的很感激ks,我用了三元组a;三元组b;等等,它奏效了。非常感谢你们的回答。我真的很感激!谢谢,我用了三元组a;三元组b;等等,它奏效了。非常感谢你们的回答。我真的很感激!