成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++對象復制相關應用方式淺析

開發 后端
C++對象復制在實際代碼編寫中占據著非常重要的地位。我們今天將會通過對這篇文章的解讀為大家詳細介紹一下相關內容。

C++編程語言的應用范圍非常廣泛,而且功能很強大,它能夠支持很多程序設計風格。其中就包括對面向對象的支持。在這里我們將會為大家詳細介紹一下有關C++對象復制的應用方式,以幫助大家學習。

C++對象復制代碼示例:

  1. class Table{  
  2. Name * p;  
  3. size_t sz;  
  4. publish:  
  5. Table(size_t s = 15){p = new Name[ssz=s];}  
  6. ~Table(){delete[]p ;}  
  7. ......  
  8. }  
  9. void h()  
  10. {  
  11. Table t1;  
  12. Table t2 = t1;  
  13. Table t3;  
  14. t3 = t2;  

在h()結束時,默認構造函數調用了2次,而析構函數被調用了3次,為何?#t#

Table t1; 調用1次默認構造函數

Table t2 = t1;默認的對象的賦值操作,按成員賦值,其中關于指針p,僅僅是將t1.p賦值給t2.p,即t2.p = t1.p,并無內存分配。對象t1和t2的p指針均指向同一塊內存。

Table t3; 調用1次默認構造函數

t3 = t2; 原t3.p指針被t2.p覆蓋,此時t3.p同樣指向對象t1和t2的p指針的同一塊內存。注意:t3原分配給p的內存由于沒有指針指向,無法利用,造成存儲浪費。

h()結束,對象t1,t2,t3的析構函數調用,此時對t1,t2,t3的指針p所指的同一塊存儲進行了三次刪除,非常危險,導致的結果是無發預料的,很可能災難性的。

 

因此明確定義類的復制構造函數(拷貝構造函數)和賦值預算可避免這樣的錯誤。

 

代碼

  1. Table::Table (const Table &t)  
  2. {  
  3. p = new Name[sz=t.sz];  
  4. for(int i=0;i<sz;i++) p[i]=t.p[i];  
  5. }  
  6. Table & Table::operator=(const Table &t)  
  7. {  
  8. if(this!=&t){  
  9. delete []p;  
  10. p = new Name[sz=t.sz];  
  11. for(int i=0;i<sz;i++) p[i]=t.p[i];  
  12. }  
  13. return *this;  

C++對象復制的基本概念就為大家介紹到這里。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-06 17:39:52

C++ strtok

2010-01-25 14:18:46

C++對象模型

2010-01-14 14:17:20

Visual C++

2010-02-05 16:46:58

C++ TinyXml

2010-02-02 17:39:31

C++構造函數

2009-08-25 15:15:08

C#對象序列化應用

2010-02-03 14:30:04

C++棧對象

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2010-01-22 13:59:34

Visual C++應

2010-02-03 15:27:26

C++ static

2010-02-04 13:39:44

C++數組參數

2010-02-04 14:29:45

C++ typenam

2010-02-06 16:39:45

C++ assert(

2010-02-06 16:21:35

C++常規DLL

2010-02-03 10:11:17

C++動態數組

2010-02-01 17:31:06

C++類成員

2010-01-20 10:19:55

C++數組

2010-01-27 17:16:52

C++構造函數

2010-02-05 13:44:06

C++ eof()函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲狠狠丁香婷婷综合久久久 | 亚洲一区 中文字幕 | 国产中文字幕网 | 精品一区二区在线观看 | 精品国产一区久久 | 欧美国产精品 | 欧美一区在线视频 | 欧美激情一区二区三区 | 中文日本在线 | 成人精品鲁一区一区二区 | www97影院| 九九热在线免费观看 | 男女下面一进一出网站 | 黑人巨大精品欧美一区二区一视频 | 激情欧美日韩一区二区 | 亚洲欧美在线免费观看 | 天天射美女 | 最新av中文字幕 | 亚洲视频在线一区 | 欧美日韩一区二区视频在线观看 | 欧美一区二区三区在线观看视频 | 日韩视频中文字幕 | 日本精品在线一区 | 国产激情视频在线 | 日韩成人免费av | 精品国产乱码久久久久久1区2区 | 91在线观看视频 | 毛片免费观看视频 | 中文字幕高清免费日韩视频在线 | 午夜播放器在线观看 | 欧美一区二区三区电影 | 精品在线一区二区 | 天天干天天操天天看 | 最新日韩在线视频 | 一区日韩| 91综合网 | 日韩在线一区二区三区 | 精品区 | 免费天天干 | 亚洲五码久久 | 久久精品国产一区二区三区不卡 |