怎样重载结构体的'=='符号?

dazhuzhuerduo 2005-11-30 12:45:18
头文件中有:
struct test
{
int a;
byte b;
float f;
int c;
}TEST1;

请问怎样重载==号,
当我使用
TEST1 m_a;
TEST1 m_b;
if(m_a==m_b){
//....................
}
...全文
171 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dazhuzhuerduo 2005-11-30
  • 打赏
  • 举报
回复
谢谢各位!终于可以了!
BluntBlade 2005-11-30
  • 打赏
  • 举报
回复
除非结构体内的子对象涉及内存管理需要自己操作,否则用Bitwise copy语义已经足够了。
不用特别定义一个==运算子。
handsomerun 2005-11-30
  • 打赏
  • 举报
回复
其实应该是bool 和true和false

nnd
mfc用多了
dazhuzhuerduo 2005-11-30
  • 打赏
  • 举报
回复
楼上的,请问要不要在struct test{}结构里面写什么啊?我改了很多次,都不行,谢谢了!
handsomerun 2005-11-30
  • 打赏
  • 举报
回复
BOOL operator == (const TEST1 &lhs, const TEST1 &rhs)
{
if(lhs.a == rhs.a && lhs.b == rhs.b && lhs.f == rhs.f && lhs.c == rhs.c)
{
return TURE;
}
else
{
return FALSE;
}
}
qfeng_zhao 2005-11-30
  • 打赏
  • 举报
回复
或者定义为结构体的成员函数
struct test
{
int a;
byte b;
float f;
int c;

bool operator == (const TEST1 &rhs){
return a = rhs.a;
}
}TEST1;

不过感觉第一种比较好,如果定义为结构体的成员函数,左操作数就必须为该结构体的对象
sasdaa 2005-11-30
  • 打赏
  • 举报
回复
bool opertaor == (test1 & other)
{
return (a == other.a && b == other.b && f==other.f && c= other.c );
}

仅供参考
qfeng_zhao 2005-11-30
  • 打赏
  • 举报
回复
bool operator == (const TEST1 &lhs, const TEST1 &rhs)
{
return lhs.a == rhs.a; //定义自己的比较方式
}

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧