如何理解C++浅复制和深复制.pptVIP

  • 2
  • 0
  • 约1.1千字
  • 约 14页
  • 2016-10-12 发布于湖北
  • 举报
如何理解C浅复制和深复制

如何理解C++淺複製和深複製 章正靈 廢話少說,開門見山 獲取類中對象的信息 建立一個A類如下: 獲取類中對象的信息 在main函數中輸入如下: 執行編譯,輸出結果如下: 對象的複製 在main函數中添加代碼如下: 注意,我們并沒有自己定義一個複製構造函數,使用的是默認的構造函數。 對象的複製 執行編譯,輸出結果如下: 對象n複製的是對象m,我們發現,對象n中的i有一個不同的內存地址,而p的內存地址與對象m的是一樣的,這就是淺複製的結果。 為什麼程序沒有崩潰呢?是因為我們沒有在析構函數中調用delete p;語句,如果加上,則程序運行會出現錯誤。 解決方案:深複製的使用 添加A類的信息如下: 運行結果如下: 深複製的TEST 完善A類的信息如下: 在複製構造函數中添加代碼: *p=*(b.p); 在A類中添加兩個函數: void setp(int x){*p=x;} void getp(){cout私有成員指針p所指向的堆空間內存的值是:*pendl;} main函數中代碼如下: 深複製的TEST 運行結果如下: 分析: 思考題目 1、什麼時候才使用深複製? 2、引用、堆、棧與的複製有

文档评论(0)

1亿VIP精品文档

相关文档