Windows 为什么CAsyncSocket没有复制构造函数或=运算符?

Windows 为什么CAsyncSocket没有复制构造函数或=运算符?,windows,sockets,networking,constructor,copy,Windows,Sockets,Networking,Constructor,Copy,我已经安装了CAsyncSocket,想把这些东西传来传去 class ClientSocket : public CAsyncSocket { CAsyncSocket nitSocket; public: ClientSocket(void); virtual ~ClientSocket(void); }; 当我这样做的时候,我会遇到几个编译错误 void SomeOtherClass::func(ClientSocket &socket) this->

我已经安装了CAsyncSocket,想把这些东西传来传去

 class ClientSocket : public CAsyncSocket
{
CAsyncSocket nitSocket;
    public:
ClientSocket(void);
virtual ~ClientSocket(void);
 };
当我这样做的时候,我会遇到几个编译错误

 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
我应该创建复制构造函数,但由于并没有基类的实现,我的代码在运行时会崩溃


重要提示:我应该复印一份吗?我的新对象是否会接收到原始对象的事件?C++中的

类型通常是由于使用基类副本容易导致的。

我不相信Winsock支持<代码> dUp()/<代码>操作。请将您的套接字成员更改为引用。@ FysSoVo请在正文末尾回答我的问题。在Windows API中,我不太熟练,但我不相信只使用C++对象的副本就可以接收原始的网络事件。如果我想派生一个类并想编写一个复制构造函数。如何以最有效的方式执行?如果windows api被破坏,我应该在windows平台上使用什么?@Ashish,这就是问题所在-您不能为“不可复制”的子类型编写复制构造函数,因为它应该通过指针/引用而不是值来使用。