0

我继承了 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

我应该创建我的复制构造函数,但是由于没有基类的实现,我的代码会在运行时崩溃。

重要提示:我应该复印吗?我的新对象会收到原始对象的事件吗?

4

1 回答 1

0

C++ 中的多态类型通常是不可复制的,因为获取基类的副本很容易导致切片

于 2012-08-16T12:32:41.027 回答