我已經干涉CAsyncSocket,並希望傳遞周圍的對象。爲什麼CAsyncSocket沒有拷貝構造函數或=操作符?
class ClientSocket : public CAsyncSocket
{
CAsyncSocket nitSocket;
public:
ClientSocket(void);
virtual ~ClientSocket(void);
};
我得到sevaral編譯錯誤,當我做
void SomeOtherClass::func(ClientSocket &socket)
this->socket = socket;
}
錯誤:
'CAsyncSocket::operator =' : cannot access private member declared in class 'CAsyncSocket'
我看着文件,發現
private:
CAsyncSocket(const CAsyncSocket& rSrc); // no implementation
void operator=(const CAsyncSocket& rSrc); // no implementation
我應該讓我的拷貝構造函數但由於沒有實施對於基類,我的代碼會在運行時崩潰。
重要提示:我應該複印一份嗎?我的新對象會收到原始對象的事件嗎?
我不相信Winsock支持'dup()'操作。只需將您的套接字成員更改爲參考。 – EJP 2012-08-15 10:57:22