64,654
社区成员
发帖
与我相关
我的任务
分享
typedef struct ThreeData
{
char chFir;
char chSec;
char chEnd;
}Data1 , Data2;//类似这样的结果体,想要重载 == 运算符 , 以实现判断两个结构体对象相等,可以通过if(Data1 == Dara2)自己上网查了下,说是可以重载,但是试了很多,不是出错,就是压根没效果。
问下:是否可以通过重载运算符达到我想要的效果,如果能实现,给下实例:
另:本人第一次发帖求助,感觉下啊…牛人们要给力啊!~
#include <iostream>
using namespace std;
struct ThreeData
{
char chFir;
char chSec;
char chEnd;
bool operator ==(ThreeData &a) //重载==
{
return (chFir==a.chFir) && (chSec==a.chSec) && (chEnd==a.chEnd);
}
};
int main()
{
ThreeData a1,a2;
if (a1==a2)
cout << "a1==a2" <<endl;
else
cout << "a1!=a2" <<endl;
}
#include <iostream>
using namespace std;
struct ThreeData
{
char chFir;
char chSec;
char chEnd;
int operator ==(ThreeData &a) //重载==
{
//以下内容按你的要求改
if ((chFir==a.chFir) && (chSec==a.chSec) && (chEnd==a.chEnd))
return 1;
else
return 0;
}
};
int main()
{
ThreeData a1,a2; //变量申明
// ....你要赋的值
if (a1==a2) //调用int operator ==
cout << "a1==a2" <<endl;
else
cout << "a1!=a2" <<endl;
}