c++ 错误: reference to local variable ‘...’ returned
生活随笔
收集整理的這篇文章主要介紹了
c++ 错误: reference to local variable ‘...’ returned
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當返回函數的零時量的引用的時候就會出現這種情況。
3.cc: In function ‘const string& add_(const string&, const string&, const string&)’:
3.cc:6:12: warning: reference to local variable ‘s’ returned [-Wreturn-local-addr]
? ? ?string s = s1;
例如:
#include <iostream>
#include <string>
using namespace std;
const string & add_(const string &s1,const string & pre,const string & behind){string s = s1; s.insert(0,pre);s.append(behind);return s;}
int main()
{string name = "robert";string pre = "Mr.";string hi = "Jr.";string new_name = add_(name,pre,hi);cout << new_name << endl;return 0;
}
編譯結果是:
r@r-Sys:~/c++/ex$ g++ 3.cc -o 123 3.cc: In function ‘const string& add_(const string&, const string&, const string&)’: 3.cc:6:12: warning: reference to local variable ‘s’ returned [-Wreturn-local-addr]string s = s1;^錯誤分析:
c++函數在結束的時候會銷毀零時量,函數返回零時量的引用就當然錯誤了。因為它已經被銷毀,所以,它的引用也就沒有什么含義了。
總結
以上是生活随笔為你收集整理的c++ 错误: reference to local variable ‘...’ returned的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++primer 4th editho
- 下一篇: 2020-08-22 cuowu