在使用MFC双向链表模板类CList中Find问题

定义结构体  

struct SData

{

    int   num;

   char sName[20];

};


CList <SData,SData>m_list;  //定义链表类的对象

SData data;//定义结构体对象

 m_list.Find(data); //出现错误

提示的错误如下:

c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(122) : error C2678: binary '==' : no operator defined which takes a left-hand operand of type 'const struct SData' (or there is no acceptable conversion)
        c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(1036) : see reference to function template instantiation 'int __stdcall CompareElements(const struct SData *,const struct SData *)' being compiled
Error executing cl.exe.

解决方案:

   在结构体SData中重载operator ==

  struct SData

{

 int   num;

  char sName[20];

 BOOL operator==(const SData& data)const    //两个const都不能省略

{

    if((this->num=data.num)&&(!strcmp(this->sName,data.sName))

             return  TRUE;

    else

           return FALSE;

}

};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值