c++ 错误: reference to local variable ‘...’ returned
生活随笔
收集整理的這篇文章主要介紹了
c++ 错误: reference to local variable ‘...’ returned
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)返回函數(shù)的零時(shí)量的引用的時(shí)候就會(huì)出現(xiàn)這種情況。
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;
}
編譯結(jié)果是:
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;^錯(cuò)誤分析:
c++函數(shù)在結(jié)束的時(shí)候會(huì)銷毀零時(shí)量,函數(shù)返回零時(shí)量的引用就當(dāng)然錯(cuò)誤了。因?yàn)樗呀?jīng)被銷毀,所以,它的引用也就沒(méi)有什么含義了。
總結(jié)
以上是生活随笔為你收集整理的c++ 错误: reference to local variable ‘...’ returned的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c++primer 4th editho
- 下一篇: 2020-08-22 cuowu