|
本帖最后由 小笨蛋 于 2012-7-14 18:05 编辑
- CArray<UserInfo,UserInfo> UserArray;
- class UserInfo
- {
- public:
- SOCKET *usersock;
- CString username;
- int status;//0:offline//1:confermed//
- public:
- UserInfo();
- virtual ~UserInfo();
- void SetStatus(int s){status=s;}
- int GetStatus(int s){return status;}
- };
复制代码 运行以下就出错,
一行行注释都找不到毛病。。好像是user.username="";和UserArray.Add(user);不能同时出现- UserInfo user;
- user.username="";
- user.usersock=pSock;
- user.status=0;
- UserArray.Add(user);
复制代码 在调试模式下会出现这个对话框。之后就跳转到CString的=运算符重载函数的地方了。。
更奇怪的是我一开始没问题,之后不知怎么的就出错了,前面的我一点也没动啊
刚刚发现了。。
如果把第一个代码里面- class UserInfo
- {
- public:
- SOCKET *usersock;
- CString username;
- int status;//0:offline//1:confermed//
- public:
- UserInfo();
- virtual ~UserInfo();
- void SetStatus(int s){status=s;}
- int GetStatus(int s){return status;}
- };
复制代码 中的 void SetStatus(int s){status=s;}
int GetStatus(int s){return status;}
去掉,一切又正常了。。。
但是这样我的status就不能被赋值了,如果使用 UserArray.GetAt(0).status=1;
编译都不能通过,显示G:\Visual C++\Server\ServerDlg.cpp(341) : error C2106: '=' : left operand must be l-value
更想不通的是 UserArray.GetAt(0).username=cname;和上面差不多啊,他却没有问题。真是邪了门 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|