C++编译时出现 reference to local variable

具体见:https://stackoverflow.com/questions/19371137/c-reference-to-local-variable-returned

  • 会引发问题的实现如下:

vector & find1(string &search_word)
{
    vector final;
final.push_back(2);
final.push_back(5);


return (final); //This is giving me the error when I try to return the vector.

}

int main ()

{
string search;

cin >> search;

vector  &p = find1(search);


}

  • 修改find1方法返回对象而不是引用
//错误的
//在find1方法结束时,方法内部的局部变量就会被清楚
std::vector& find1(std::string& search_word)
std::vector& p = find1(search);

//正确的
//使用对象,而不是引用
vector find1(string &search_word); //返回类型从引用变成对象
std::vector p = find1(search);

 

你可能感兴趣的:(C++学习)