我没有看到任何解决我的特定代码问题的东西.
我在课堂上有一个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;
...
Run Code Online (Sandbox Code Playgroud)
而我正试图在Main中调用它,但只是在调用正确的时候遇到问题.显然,如果我在措辞中遗漏了任何东西,它会给出一个错误,我只有很少的语句,如果我尝试使用函数的整个措辞,我会得到错误,我需要一个分号,但我已经有了在通话结束时分号,所以我知道别的东西是错的,我根本无法弄清楚出了什么问题!任何帮助,将不胜感激!
提前致谢.
Jam*_*lis 11
你可以使用它来调用它==(这就是运算符重载的作用;它会重载运算符的含义):
Triplet a;
Triplet b;
if (a == b) //< calls your operator==
Run Code Online (Sandbox Code Playgroud)
您也可以使用函数调用语法调用它:
if (a.operator==(b)) //< also calls your operator==
Run Code Online (Sandbox Code Playgroud)
但你通常不想或不需要这样做.
您可能需要这样做的一个案例是,如果由于某种原因,您有一个操作员模板,其模板参数无法从参数中推断出来(这很少见operator==,但我已经看过operator[]以前用过的).
这是一个C++运算符重载,它的设计使它可以改变普通运算符的行为:
Triplet a, b;
if (a == b) // calls Triplet::operator==()
Run Code Online (Sandbox Code Playgroud)
如果您真的想要,可以通过名称呼叫运营商:
if (a.operator==(b))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3415 次 |
| 最近记录: |