作者ducksky (鸭舞九天)
看板C_and_CPP
标题[问题] 为什麽函式可以传出CLASS
时间Sun Jun 19 12:54:50 2016
String fun()
{
String str="abc";
return str;
}
main
{
String strM=fun();
}
请问上面的作法为何可行?
在fun()内的str不是区域变数吗?
生命周期应该再函式结束就消失不是吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.135.30.2
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1466312094.A.1CA.html
1F:推 jerryh001: 是传出str的值 不是那个物件 所以会复制出一个新string 06/19 13:22
2F:→ Richun: String不要当成指标看 当成struct你会比较理解 06/19 15:46
3F:→ ko27tye: call by value 06/19 16:26
4F:→ wtchen: 看来十三诫要多说明一下 06/19 20:32
5F:→ Caesar08: 这太新手了...,确定要放13诫? 06/19 22:00
6F:→ wtchen: 我还以为是13诫没讲清楚 06/19 22:26
7F:推 james732: 13诫不就是要给新手看的吗?XD 06/19 22:52
8F:推 tjjh89017: 老实说新手不一定看得懂13诫Orz 06/19 23:32
9F:→ wtchen: 那至少要说哪里看不懂才好补充阿.... 06/20 00:13
10F:→ Caesar08: 难不成连变数要怎麽定义,for loop要怎麽用都要放进13诫 06/20 09:29
11F:→ Caesar08: ? 06/20 09:29
12F:→ wtchen: 也是 06/20 15:07
13F:→ wtchen: 看来我想太多了 06/20 15:08
14F:→ Frozenmouse: 再刻下去会从石板变石柱啊XD 06/20 16:10
15F:推 jerryh001: 应该直接出一本书XD 06/20 16:55
16F:推 iamstudent: 然後书名叫Effective C++ More More之类的 06/20 18:25
17F:→ testPtt: 认真来说要从asm指令来讲起 06/20 18:28
18F:推 chehsunliu: 不懂给新手问有何不妥,不然什麽都一直诫诫诫就饱了 06/20 21:58
19F:推 b0920075: 会诫的都是很基础的吧...不规范版上大概就会跟中国贴吧 06/21 06:01
20F:→ b0920075: 一样到处都是非常基础的问答 06/21 06:02