我定义了一个链表CList<sockaddr_in,sockaddr_in&>m_ClientSockAddr;用于存储接收到的消息的sock来源信息..请问:在这个链表中,我应如何查找某个sockaddr元素呢?我是这么写的:POSITION p = m_ClientSockAddr.Find(sock->RecvClient);但是编译的时候返回:error C2678: binary '==' : no operator found which takes a left-hand operand of type 'const sockaddr_in' (or there is no acceptable conversion)
分不多了,还请见谅....不吝赐教.谢谢!

解决方案 »

  1.   

    看了其他人的提问,如果是自定义类的话,需要重载 == .
    但是我用的是sockaddr_in的链表,要如何解决呢?请高人赐教.谢谢!
      

  2.   

    类型不一致. 你的"sock"是什么结构的?必要时自己做for循环查询.
      

  3.   

    sock是我的自定义类.....其中public:
      ::sockaddr_in RecvClient;
      

  4.   

    谢谢 flyelf 的指点~~ 重载后,可以实现对IP地址的判断了.如下:#pragma once
    #include "winsock2.h"class CSockAddr :
    public sockaddr_in
    {
    public:
    CSockAddr(void);
    public:
    ~CSockAddr(void);bool operator==(const CSockAddr& right) const
    {
    return sin_addr.S_un.S_addr == right.sin_addr.S_un.S_addr;
    }};