冒险岛侠盗副手:关于new分配内存的问题

来源:百度文库 编辑:高校问答 时间:2024/04/30 10:07:24
这函数里面的temp我是用new分配的内存,为什么回在函数结束后空间就释放了?不是因该用delete后或则程序结束后才释放吗?

String String::operator+ (const String & t) //使用+把2字符串相加
{
int i;
String *temp;
temp = new String;
(*temp).str = new char[length + t.length + 1]; //给相加的结果分配空间

for(i = 0; i < length; i++) //分别把2字符串拷贝到temp
{
(*temp).str[i] = str[i];
}

for(int j = 0; j < t.length; j++,i++)
{
(*temp).str[i] = t.str[j];
}
(*temp).str[length + t.length] = '\0';
(*temp).length = length + t.length;

return *temp;
}

还望高手指点下,谢谢!

你函数的返回类型应该是String&