[问题] 为什么函式可以传出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