永发信息网

VC++:operate=拷贝构造函数所需要实现的具体工作是什么?

答案:2  悬赏:80  手机版
解决时间 2021-01-29 17:36
  • 提问者网友:黑米和小志
  • 2021-01-29 13:52
CMyQQServerDlg
{
……
//自己加入成员变量
private:
CListenSocket m_listenSocket; //唯一的侦听套接字
CList m_lstSocke; //保存所有用户的连接套接字
……
};
其中class CClientSocket : public CAsyncSocket
{
……
//自己加入的成员函数和变量
public:
void SetUser(UINT pUserID);
void SetParent(CMyQQServerDlg* pParent);
private:
UINT m_UserID; //保存用户ID
CMyQQServerDlg* m_wndParent; //保存主窗口指针
};
编译时出错:
c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(843) : error C2582: 'CClientSocket' : 'operator =' function is unavailable
c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(1566) : while compiling class-template member function 'struct __POSITION *__thiscall CList::AddTail(class CClientSocket &)'
……
上网查询后知道应该重载operate=拷贝构造函数,但是不知道operate=拷贝构造函数所需要实现的具体工作是什么.恳请各位高手帮忙给点建议,如果可以给出具体代码那就更求之不得了。
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-01-29 15:10
拷贝有浅拷贝和深拷贝两种。

浅拷贝简单来说就是直接复制对象指针。
深拷贝就是把复制所有类成员变量。

你的 operator= 应该实现深拷贝,即把所有成员变量的值都复制一次。
全部回答
  • 1楼网友:山河有幸埋战骨
  • 2021-01-29 15:33
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯