[問題] 為什麼函式可以傳出CLASS

作者: ducksky (鴨舞九天)   2016-06-19 12:54:50
String fun()
{
String str="abc";
return str;
}
main
{
String strM=fun();
}
請問上面的作法為何可行?
在fun()內的str不是區域變數嗎?
生命週期應該再函式結束就消失不是嗎?
作者: jerryh001   2016-06-19 13:22:00
是傳出str的值 不是那個物件 所以會複製出一個新string
作者: Richun (解放左手的OO之力)   2016-06-19 15:46:00
String不要當成指標看 當成struct你會比較理解
作者: ko27tye (好滋好滋)   2016-06-19 16:26:00
call by value
作者: wtchen (沒有存在感的人)   2016-06-19 20:32:00
看來十三誡要多說明一下
作者: Caesar08 (Caesar)   2016-06-19 22:00:00
這太新手了...,確定要放13誡?
作者: wtchen (沒有存在感的人)   2016-06-19 22:26:00
我還以為是13誡沒講清楚
作者: james732 (好人超)   2016-06-19 22:52:00
13誡不就是要給新手看的嗎?XD
作者: tjjh89017 (伊達政宗)   2016-06-19 23:32:00
老實說新手不一定看得懂13誡Orz
作者: wtchen (沒有存在感的人)   2016-06-20 00:13:00
那至少要說哪裡看不懂才好補充阿....
作者: Caesar08 (Caesar)   2016-06-20 09:29:00
難不成連變數要怎麼定義,for loop要怎麼用都要放進13誡?
作者: wtchen (沒有存在感的人)   2016-06-20 15:07:00
也是看來我想太多了
作者: Frozenmouse (*冰之鼠*)   2016-06-20 16:10:00
再刻下去會從石板變石柱啊XD
作者: jerryh001   2016-06-20 16:55:00
應該直接出一本書XD
作者: iamstudent (stu)   2016-06-20 18:25:00
然後書名叫Effective C++ More More之類的
作者: testPtt (測試)   2016-06-20 18:28:00
認真來說要從asm指令來講起
作者: chehsunliu (阿勳)   2016-06-20 21:58:00
不懂給新手問有何不妥,不然什麼都一直誡誡誡就飽了
作者: b0920075 (Void)   2016-06-21 06:01:00
會誡的都是很基礎的吧...不規範版上大概就會跟中國貼吧一樣到處都是非常基礎的問答

Links booklink

Contact Us: admin [ a t ] ucptt.com