我定义了一个函数,返回类型为CStringList,
return SMSLlist;(其中SMSList为CStringList)
编译时出现下面的错误:error C2558: class 'CStringList' : no copy constructor available
请问要如何解决? 下面是我的部分代码
CStringList CModemOp::ReadSMS(int nReadType)
这是我的一部分代码{
     CStringList SMSList;  while (.....) 
 {

SMSList.AddTail(SMData);
                  
 }
return SMSList;

解决方案 »

  1.   

    CStringList 没有拷贝构造函数,不能直接返回,只能把它作为出口参数传进入
      

  2.   

    函数定义修改为如下形式void CModemOp::ReadSMS(int nReadType, CStringList& list)函数代码类似
    while (.....)
    {list.AddTail(SMData);}
    }
      

  3.   

    再问SoLike(思危) :
    void CModemOp::ReadSMS(int nReadType, CStringList& list)
    我如果把它改成
    void CModemOp::ReadSMS(int nReadType, CStringList list)可以吗?
    为什么要加个“&”,两者有什么区别?谢谢!
      

  4.   

    加&修改的入口参数list,不加修改的只是一个临时变量,修改对入口的参数没效果。
      

  5.   

    不知道&为何物的,请再翻看一下C++语法书,不要看90年代以前的。