为什么只可以返回CStringArray的指针而不是实体呢?
ddboy 2004-10-23 09:39:05 我编译调试
CStringArray SplitString(CString sSource,char betch)
{
CStringArray strArr;
CString temp;
char c;
for(int i=0;i<sSource.GetLength();i++)
{
c=sSource[i];
if(c==betch)
{
strArr.Add(temp);
temp="";
}
else
{
temp+=c;
}
}
strArr.Add(temp);
return strArr;
}
这样总是提示
error C2558: class 'CStringArray' : no copy constructor available
但是用
CStringArray* SplitString(CString sSource,char betch)
{
CStringArray strArr;
CString temp;
char c;
for(int i=0;i<sSource.GetLength();i++)
{
c=sSource[i];
if(c==betch)
{
strArr.Add(temp);
temp="";
}
else
{
temp+=c;
}
}
strArr.Add(temp);
return &strArr;
}
或
CStringArray* SplitString(CString sSource,char betch)
{
CStringArray strArr=new CStringArray();
CString temp;
char c;
for(int i=0;i<sSource.GetLength();i++)
{
c=sSource[i];
if(c==betch)
{
strArr->Add(temp);
temp="";
}
else
{
temp+=c;
}
}
strArr->Add(temp);
return strArr;
}
这样就正常,这是什么原因呢???