我在程序中定义了一个CArry<CUser,CUser&> arrUser;的变量 并且在其中添加了几个个CUuser对象,但是我通过CUser user = arrUser.ElementAt(0)然后修改User.UserName=_T("abcd")user是修改过来了 但是我重新获取arrUser.ElementAt(0)里边还是没变,怎么回事啊?我怎么才能让它也变呢?程序如下:
CArry<CUser,CUser&> arrUser;
CUser user0;
user0.UserName=_T("a0");
arrUser.Add(user0);
...
CUser user = arrUser.ElementAt(0);
user.UserName=_T("abcd");CUser userTem = arrUser.ElementAt(0);userTem.UserName这里还是a0,我想让它是abcd

解决方案 »

  1.   

    CUser& user = arrUser.ElementAt(0);
    这里要用引用!
      

  2.   

    也可以CUser user = arrUser.GetAt(0); 
    user.UserName=_T("abcd"); 
    arrUser.SetAt(0, user );CUser userTem = arrUser.GetAt(0); userTem.UserName这里还是a0,我想让它是abcd 
      

  3.   

    我一般是这么定义
    CArry <CUser,CUser> arrUser; 然后arrUser[0].userName = _T("a0"); 
      

  4.   

    用ElementAt方式就要返回引用等来修改,要么就直接arrUser[0] 用operator = 来赋值