进来看下,知道的解答一下,实在是不明白.....
听君一席话,胜读十年书!!!
#include
#include
using namespace std;
string fun1(const string &s1,const string &s2);
const string &fun2(string &s1,const string &s2);
const string & fun3(string &s1,const string &s2); //错误的设计
int main()
{
system ("color e");
string input;
string copy;
string result;
cout<
getline(cin,input);
copy=input;
cout<
result=fun1(input,"#####");
cout<
cout<
system ("pause");
result=fun2(input,"$$$$$");
cout<
cout<
system ("pause");
input=copy;
result=fun3(input,"*****");
cout<
cout<
system ("pause");
return 0;
}
string fun1(const string &s1,const string &s2)
{
string t;
t=s2+s1+s2;
return t;
}
const string &fun2(string &s1,const string &s2)
{
s1=s2+s1+s2;
return s1;
}
const string &fun3(string &s1,const string &s2)
{
string t;
t=s2+s1+s2;
return t;
}
fun1和fun3中t都是临时变量,为什么调用fun3后程序会崩溃???
这2函数有什么区别啊
听君一席话,胜读十年书!!!
#include
#include
using namespace std;
string fun1(const string &s1,const string &s2);
const string &fun2(string &s1,const string &s2);
const string & fun3(string &s1,const string &s2); //错误的设计
int main()
{
system ("color e");
string input;
string copy;
string result;
cout<
getline(cin,input);
copy=input;
cout<
result=fun1(input,"#####");
cout<
cout<
system ("pause");
result=fun2(input,"$$$$$");
cout<
cout<
system ("pause");
input=copy;
result=fun3(input,"*****");
cout<
cout<
system ("pause");
return 0;
}
string fun1(const string &s1,const string &s2)
{
string t;
t=s2+s1+s2;
return t;
}
const string &fun2(string &s1,const string &s2)
{
s1=s2+s1+s2;
return s1;
}
const string &fun3(string &s1,const string &s2)
{
string t;
t=s2+s1+s2;
return t;
}
fun1和fun3中t都是临时变量,为什么调用fun3后程序会崩溃???
这2函数有什么区别啊