对C++不能返回局部变量的引用的疑惑???
C++primer这本书上说到,不能返回局部变量的引用,并列举了下面的例子
const string &manip()
{
string ret;
ret = "Hello";
if ( !ret.empty() )
{
return ret;
}
else
{
return "Empty";
}
}
上面的例子我在VS2015上面运行会报错,但是如果把string换成int,则能运行,也能得到正确结果
const int &manip()
{
int ret;
ret = 1;
if ( ret )
{
return ret;
}
else
{
return 0;
}
}
这是什么原因????望哪位知道的大神不吝赐教,谢谢!