【发布时间】:2020-05-30 01:12:19
【问题描述】:
如果我定义这样的函数
std::string& returnstring(std::istringstream &ist)
{
std::string temp;
std::getline(ist,temp);
return temp;
}
如果我使用这个temp,它通过引用传递给像这样的另一个函数
void displaystring(std::string &temp)
{
std::cout<<temp;
}
当我通过引用displaystring 函数传递string temp 时,它是否仍在范围内?
【问题讨论】:
-
不,你会有一个悬空引用
-
好的。那么传值呢?
-
是的,按值传递。
RVO将确保它不会被复制。你可以相信编译器会在这里做正确的事情 -
谢谢@Wbuck。是的,克里斯,我正在尝试了解两者之间的区别