永发信息网

为什么CList不能保存CSocket

答案:2  悬赏:0  手机版
解决时间 2021-02-18 19:02
  • 提问者网友:我是我
  • 2021-02-17 18:20
用list或者CObList则提示:

1>ClCompile:
1> 所有输出均为最新。
1> listSocketDlg.cpp
1>d:\vs++\vs2010\listsocket\listsocket\listsocketdlg.cpp(151): error C2143: 语法错误 : 缺少“;”(在“<”的前面)
1>d:\vs++\vs2010\listsocket\listsocket\listsocketdlg.cpp(151): error C2143: 语法错误 : 缺少“;”(在“<”的前面)
1>
1>生成失败。
1>
1>已用时间 00:00:00.20
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
用CList提示:
1> listSocketDlg.cpp
1>e:\新建文件夹\vc\atlmfc\include\afxtempl.h(1194): error C2248: “CSocket::CSocket”: 无法访问 private 成员(在“CSocket”类中声明)
1> e:\新建文件夹\vc\atlmfc\include\afxsock.h(245) : 参见“CSocket::CSocket”的声明
1> e:\新建文件夹\vc\atlmfc\include\afxsock.h(241) : 参见“CSocket”的声明
1> e:\新建文件夹\vc\atlmfc\include\afxtempl.h(1167): 编译类 模板 成员函数“void CList::Serialize(CArchive &)”时
1> with
1> [
1> TYPE=CSocket,
1> ARG_TYPE=CSocket
1> ]
1> d:\vs++\vs2010\listsocket\listsocket\listsocketdlg.cpp(151): 参见对正在编译的类 模板 实例化“CList”的引用
1> with
1> [
1> TYPE=CSocket,
1> ARG_TYPE=CSocket
1> ]
1>e:\新建文件夹\vc\atlmfc\include\afxtempl.h(1212): error C2248: “CSocket::operator =”: 无法访问 private 成员(在“CSocket”类中声明)
1> e:\新建文件夹\vc\atlmfc\include\afxsock.h(246) : 参见“CSocket::operator =”的声明
1> e:\新建文件夹\vc\atlmfc\include\afxsock.h(241) : 参见“CSocket”的声明
1> e:\新建文件夹\vc\atlmfc\include\afxtempl.h(1202): 编译类 模板 成员函数“void CList::Dump(CDumpContext &) const”时
最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-02-17 19:51
因为CSocket不能使用拷贝构造函数来构造

所以有两种解决方案:
1(推荐)
CList里面存CSocket*(指针)
2
自己从CSocket派生一个类,实现一个public的拷贝构造函数
全部回答
  • 1楼网友:酒醒三更
  • 2021-02-17 21:13
你好! 请问出错地方的代码是什么?? 如有疑问,请追问。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯