关于c++返回值的问题
我知道函数不能返回局部对象的引用:
const string &manip(const string &s)
{
string ret=s;
return ret; //返回局部对象的引用函数出错
}
//main函数内:
string s("hello");
cout<<manip(s)<<endl;
编译器会警告,运行时会出错。
可是在下面这种情况下就只有警告,但可以正常运行。
double &func(double t)
{
double tt=0.0;
tt=t;
return tt; //返回的也是局部对象啊
}
//main函数内:
double temp=1.5;
cout<<func(temp)<<endl;
程序可以运行不报错,这是为什么呢??