麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

C++初級主題--(5)拷貝構造函數

2019-11-14 08:59:39
字體:
來源:轉載
供稿:網友

一.概念

同一個類的對象在內存中有完全相同的結構,如果作為一個整體進行復制或稱拷貝是完全可行的。這個拷貝過程只需要拷貝數據成員,而函數成員是共用的(只有一份拷貝)。在建立對象時可用同一類的另一個對象來初始化該對象,這時所用的構造函數稱為拷貝構造函數(Copy Constructor)。

int main(){ Test t1(10); Test t(t1); //調用拷貝構造函數 Test t2 = t1; //調動拷貝構造函數}

二.詳解拷貝構造函數

1.調動拷貝構造函數的情況 (1)對象初始化對象調動拷貝構造函數

區別初始化與賦值

Test t(10);Test t1;t1 = t; //賦值Test t2(t);//初始化Test t3 = t;//初始化

另外兩種情況 (2)當函數的形參是類的對象,調用函數時,進行形參與實參結合時使用。這時要在內存新建立一個局部對象,并把實參拷貝到新的對象中。

void fun(Test t){}

(3)當函數的返回值是類對象,函數執行完成返回調用者時使用。理由也是要建立一個臨時對象中,再返回調用者。

Test fun(){ Test t; return t;}

因為局部對象在離開建立它的函數時就消亡了,不可能在返回調用函數后繼續生存,所以在處理這種情況時,編譯系統會在調用函數的表達式中創建一個無名臨時對象,該臨時對象的生存周期只在函數調用處的表達式中。所謂return 對象,實際上是調用拷貝構造函數把該對象的值拷入臨時對象(對象初始化對象),最終返回的是臨時對象。如果返回的是變量,處理過程類似,只是不調用構造函數

這三種情況無疑都是對象初始化對象而已.

2.拷貝構造函數的參數–采用常引用

//拷貝構造函數的一般形式Test(const Test &t){ data = t.data;}

(1)為什么采用引用傳遞參數 如果把一個真實的類對象作為參數傳遞到拷貝構造函數,此時,參數表里又是用對象初始化對象,調動拷貝構造函數。如此往復,造成無限遞歸。 如下圖: 這里寫圖片描述

(2)為什么是常引用 常引用就使得被拷貝的類對象不能被隨意修改,保證信息不被丟失。當然,你可以不用引用。

3.默認拷貝構造函數的功能 將對應的成員值進行拷貝

t1 tdata<---data
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美特黄一级高清免费的香蕉 | 国产人成免费爽爽爽视频 | 自拍偷拍亚洲图片 | 国产资源在线观看 | 91精品国产一区二区在线观看 | 可以免费看av | 91短视频在线观看 | 国产成人自拍视频在线 | 国产精品v片在线观看不卡 成人一区二区三区在线 | 免费三级大片 | 制服丝袜成人动漫 | 亚洲福利在线免费观看 | 欧美 国产 综合 | 毛片网站网址 | 久久精品亚洲精品国产欧美kt∨ | 成人福利在线 | 龙床上的呻吟高h | www.国产一区.com | 国产九色在线观看 | 成人毛片免费播放 | 国产成视频在线观看 | 亚洲第一页在线观看 | 国产成人精品免高潮在线观看 | 日韩黄色一级视频 | 精国品产一区二区三区有限公司 | 国产乱淫av片免费观看 | 久久久久久麻豆 | 欧美成人一区二区三区电影 | 日韩av片网站 | 92看片淫黄大片一级 | 亚洲免费看片网站 | 中文字幕在线看第二 | 久久精品2019中文字幕 | 亚洲一级电影在线观看 | 久久91久久久久麻豆精品 | 国产一区二区视频精品 | 成人一级毛片 | 中文字幕一区在线观看视频 | 免费国产在线视频 | 国产一级不卡毛片 | 久久久综合久久久 |