亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

引用用于類對象,為什么運行會崩潰

引用用于類對象,為什么運行會崩潰

C C++
xungeer29 2017-10-22 13:37:55
#include?<iostream> #include?<string> using?namespace?std; const?string?&?version3(string?&?s1,?const?string?&?s2);?//?bad?design int?main() { ?string?input; ?string?copy; ?string?result; ?cout?<<?"Enter?a?string:?"; ?getline(cin,?input); ?copy?=?input; ?cout?<<?"Your?string?as?entered:?"?<<?input?<<?endl; result?=?version3(input,?"@@@"); ?cout?<<?"Your?string?enhanced:?"?<<?result?<<?endl; ?cout?<<?"Your?original?string:?"?<<?input?<<?endl; ?return?0; const?string?&?version3(string?&?s1,?const?string?&?s2)?//?bad?design { ?string?temp; ?temp?=?s2?+?s1?+?s2; ?//?unsafe?to?return?reference?to?local?variable ?return?temp; } 答案時程序試圖引用已釋放的內存??但是沒看到啊,難以理解
查看完整描述

1 回答

已采納
?
onemoo

TA貢獻883條經驗 獲得超454個贊

main 函數缺了尾大括號,不過應該是貼代碼時落下了吧。


在 version3 中,你返回的是函數中的變量 temp。這個 temp 的作用域僅在函數之中,在函數運行結束后 temp 會被銷毀,這樣返回的這個引用就引用無效對象了。


在函數返回引用時一定要注意不要返回函數的 local 變量。

查看完整回答
1 反對 回復 2017-10-22
  • 1 回答
  • 0 關注
  • 1406 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號