头文件:class NetClient
{
public:
NetClient(void);
NetClient(char* sRemoteAddress, int nRemotePort);
~NetClient(void); char m_strRemoteAddress[50] ;    //IP地址
int m_intRemotePort ;       //端口
int m_intReadTimeOut ;    //超时
CSocket m_SocketClient;
NetClient& operator=(const NetClient &nc)
{
//这里面应该怎么写
}
};cpp文件:NetClient::NetClient(void)
{
m_intMaxDataSize = 4*1024*1024;
m_intReadTimeOut = 30;
}NetClient::NetClient(char* sRemoteAddress, int nRemotePort)
{
if (strlen(sRemoteAddress) != 0)
{
//m_strRemoteAddress = sRemoteAddress; 
strcpy_s((char*)m_strRemoteAddress, 50, sRemoteAddress);   
}
if(nRemotePort > 0)
{
m_intRemotePort = nRemotePort;    
}
m_intMaxDataSize = 4*1024*1024;      //最大文件大小
m_intReadTimeOut = 30; //超时时长}NetClient::~NetClient(void)
{}我想实现的效果是:
NetClient nc;
nc = NetClient("192.168.1.55",3000);

解决方案 »

  1.   

    class NetClient
    {
    public:
        NetClient(void);
        NetClient(char* sRemoteAddress, int nRemotePort);
        ~NetClient(void);        char m_strRemoteAddress[50] ;    //IP地址
        int m_intRemotePort ;       //端口
        int m_intReadTimeOut ;    //超时
        CSocket m_SocketClient;
        NetClient& operator=(const NetClient &nc)
        {
            //这里面应该怎么写
           lstrcpy( m_strRemoteAddress, nc.m_strRemoteAddress) ;    //IP地址
        m_intRemotePort = nc.m_intRemotePort;
        }
    };
      

  2.   

    哦   还要return this
      

  3.   

      m_SocketClient=//需要模仿上面来写。如果其中含有指针,还得深拷贝。  return this;
      

  4.   


    m_SocketClient = NetClient.m_SocketClient;
    我这样写了以后,会编译错误。提示如下:
    error C2248: 'CSocket::operator =' : cannot access private member declared in class 'CSocket'而CSocket类是这样的:
    class CSocket : public CAsyncSocket
    {
    DECLARE_DYNAMIC(CSocket);
    private:
    CSocket(const CSocket& rSrc);         // no implementation
    void operator=(const CSocket& rSrc);  // no implementation
      ....
    };不知道该怎样解决!!!
      

  5.   

    忽略掉m_SocketClient也是可以的。即使复制也就是复制其中的成员变量值。而CSocket对每个用户总是得重新建立。多数变量值也许都CSocket重新赋值。
      

  6.   

    nc = NetClient("192.168.1.55",3000);
    构造函数里面是怎么处理 m_SocketClient的
    你重载里就怎么处理  
    csocket是一个类 直接等于肯定不行
      

  7.   

    构造函数里面没对m_SocketClient进行处理,重载操作符的时候就不用对m_SocketClient进行处理吗?
      

  8.   

    可以放到一个初始化Init函数中处理m_SocketClient
    一般操作符跟构造函数保持一致就可以