这是另一个n00b问题:
为什么我不能/不应该将referece返回到函数的局部变量?是因为临时变量在函数执行完毕后会自动销毁吗?
const string & wrap(string & s1, const string & s2){
string temp;
temp = s2 + s1 + s2;
return temp;
}
Run Code Online (Sandbox Code Playgroud)
这个如何:
const string & wrap2(const string & s1, const string & s2){
return (s2 + s1 + s2);
}
Run Code Online (Sandbox Code Playgroud)
Set*_*gie 10
函数内部声明的变量在堆栈上分配.当函数返回到调用者时,堆栈中用于驻留的变量的空间被回收并且不再可用,并且那里的变量不再存在(他们确实做了但你不能使用它们,它们可以是随时覆盖).所以,是的,基本上你说的.