亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 3563 | 回復(fù): 5
打印 上一主題 下一主題

[C++] 為什么 沒(méi)調(diào)用 拷貝構(gòu)造函數(shù) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-01-11 16:10 |只看該作者 |倒序?yàn)g覽
  1. class Person
  2. {
  3. public:
  4.     Person(){cout << "construct"<< endl;}
  5.     Person(const Person& p1) { cout << "copy" << endl; }
  6. };
  7. Person fun()
  8. {
  9.     Person p1;
  10.     return p1;
  11. }
  12. int main()
  13. {
  14.     fun();
  15.     return 0;
  16. }
復(fù)制代碼
為啥 不調(diào)用 拷貝構(gòu)造函數(shù),很奇怪

可是如果 fun 函數(shù) 寫(xiě)成這樣
  1. Person fun()
  2. {
  3.     Person *p1 = new Person;
  4.     return *p1;
  5. }
復(fù)制代碼
就調(diào)用了,這尼瑪 奇怪的

論壇徽章:
2
酉雞
日期:2014-01-09 13:24:252015年亞洲杯之阿曼
日期:2015-02-13 00:43:51
2 [報(bào)告]
發(fā)表于 2014-01-11 16:22 |只看該作者
上面那個(gè)可能是被編譯器優(yōu)化掉了。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-01-11 16:34 |只看該作者
對(duì)的,剛 知道  答案, 被編譯器 優(yōu)化掉的,這 叫 RVO的名字回復(fù) 2# Fomalhaut2


   

論壇徽章:
5
技術(shù)圖書(shū)徽章
日期:2013-08-18 12:36:48水瓶座
日期:2013-12-27 16:10:36金牛座
日期:2014-01-24 10:25:23金牛座
日期:2014-01-24 10:50:03巨蟹座
日期:2014-01-24 16:27:28
4 [報(bào)告]
發(fā)表于 2014-01-11 17:09 |只看該作者
GNU/Linux GCC(包括C++擴(kuò)展) 默認(rèn)使用cdecl調(diào)用約定,參數(shù)通過(guò)棧來(lái)傳遞,返回值放在EAX寄存器中。
如果返回?cái)?shù)據(jù)長(zhǎng)度大于EAX的長(zhǎng)度,且返回的數(shù)據(jù)是棧上的變量,GCC會(huì)做特殊處理來(lái)避免一次內(nèi)存拷貝:
返回值的內(nèi)存由調(diào)用者分配,將該內(nèi)存地址放到EAX中返回。(相當(dāng)于將返回值的內(nèi)存當(dāng)作一個(gè)隱含的參數(shù)通過(guò)棧來(lái)傳遞給調(diào)用者)

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2014-01-11 21:41 |只看該作者
回復(fù) 4# math_cai



   

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2014-01-17 14:55 |只看該作者
是優(yōu)化的吧。
比如
int main()
{
int a; //這樣的也不生成代碼,如果弄成 volatile int a; 它可能就ok了。
}


我是一只小小小小鳥(niǎo)。 。。感謝您的分享。。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP