我想做这样一个函数:把一行以某一字符间隔的文本转换为一个字符串数组返回类型为CStringArray编译时产生如下错误: 
     error C2558: 'CStringArray::CStringArray' : no copy constructor available 请各位高手帮忙解决?

解决方案 »

  1.   

    CStringArray类型不能直接用于返回.可以这么写
    void funa(CStringArray &a)
    {
     a.Add("aa");
     a.Add("bb");
     a.Add("cc");
    return;
    }
    //调用函数部分
    CStringArray b;
    funa(b);
    CString str = b.GetAt(0);
    //这时str 的值为“aa”这种传递参数的方式叫按引用方式。具体参见c++方面的书;
      

  2.   

    可以返回CStringArray的指针,前提是返回值指向的对象是静态的或者是全局的或者是new出来的
      

  3.   

    extern void g_LoadStringArray(
    CStringArray& arStrings
    ,CString strText
    ,LPCTSTR chSep //= _T(",\n"
    )
    {
    arStrings.RemoveAll();
    CString strSect;

    int nCol= 0;
    int nPos;

    while ((nPos = strText.FindOneOf(chSep)) != -1){

    strSect= strText.Left(nPos);
    arStrings.Add(strSect);
    strSect= strText.Mid(nPos + 1);
    strText= strSect;
    nCol++;
    }
    arStrings.Add(strText);
    }void g_LoadStringArray(CStringArray& arStrings,UINT nStringID,LPCTSTR chSep /*= ',\n'*/)
    {
    CString strText;
    VERIFY(strText.LoadString(nStringID));
    g_LoadStringArray(arStrings,strText,chSep);
    }