繁体   English   中英

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

[英]Why CAsyncSocket does not have copy constructor or = operator?

我安装了CAsyncSocket并想传递对象。

 class ClientSocket : public CAsyncSocket
{
CAsyncSocket nitSocket;
    public:
ClientSocket(void);
virtual ~ClientSocket(void);
 };

我这样做时会收到sevalal编译错误

 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 ++中的多态类型通常被制成不可复制的,因为获取基类的副本很容易导致切片

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM