gpt4 book ai didi

C++ 等于运算符

转载 作者:太空宇宙 更新时间:2023-11-04 14:39:40 25 4
gpt4 key购买 nike

我有以下等号运算符:

  bool operator==(const Duration& x, const Duration& y){
return ( x.hrs == y.hrs, x.mins == y.mins, x.secs == y.secs );
}

我也试过:

 bool operator==(const Duration& x, const Duration& y){
return ( (x.hrs == y.hrs) && (x.mins == y.mins) && (x.secs == y.secs) );
}

在我的主要方法中我有:

  //Arbitrary Durations - Testing
Duration dTest0 (01,45,12);
Duration dTest1 (01,35,45);
Duration dTest2 (01,35,45);
Duration dTest3 (01,25,05);

if ( dTest0 == dTest1 ){
cout<< "broken" << endl;
}
else{
cout<< "working" << endl;
}

我的程序不断输出“broken”,这表明 dTest0 和 dTest1 实际上是相等的...我哪里出错了?

附加:如果我使用 x.getHours == y.getHours... 它会在 "." 下方放置一条红线并显示:'错误:a指向绑定(bind)函数的指针只能用于调用函数。

如有任何建议,我们将不胜感激。谢谢。

最佳答案

只有当 x.secs == y.secs 时,第一个实现才会返回 true。前两次比较的结果将被丢弃。 , 运算符计算其第二个操作数的值,在本例中归结为 x.secs == y.secs

然而,第二个是正确的。如果它不起作用,那么您一定是在 Duration 的构造函数中错误地设置了 hrsminssecs 的值

getHours 的问题是您需要调用它。它毕竟是一个成员函数。所以 x.getHours() 而不是 x.getHours

关于C++ 等于运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13804332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com