日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

17.深浅拷贝和写时拷贝

發布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 17.深浅拷贝和写时拷贝 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深淺拷貝


淺拷貝只拷貝指針,但拷貝后兩個指針指向同一個內存空間;

深拷貝不但對指針進行拷貝,而且對指針指向的內容進行拷貝,經深拷貝后的指針指向兩個不同地址。

當類成員不包括指針何引用時,淺拷貝并無問題;但對于指針與引用成員,當對象的生命周期結束后,淺拷貝會造成同一塊內存單元被釋放兩次,導致內存泄漏。??????

調用拷貝構造函數后,淺拷貝依然還有聯系,深拷貝的兩個對象完全獨立。

淺拷貝類似于文件創建快捷方式,而深拷貝好比文件復制。

編譯器默認提供的默認拷貝構造函數是淺拷貝,深拷貝的構造函數需自己實現。


什么是寫時拷貝技術:
寫時拷貝技術可以理解為“寫的時候才去分配空間”,這實際上是一種拖延戰術。
舉個栗子:

?

寫時拷貝技術原理:
寫時拷貝技術是通過"引用計數"實現的,在分配空間的時候多分配4個字節用來記錄有多少個指針指向塊空間,當有新的指針指向這塊空間時,引用計數加一,當要釋放這塊空間時,引用計數減一(假裝釋放),直到引用計數減為0時才真的釋放掉這塊空間。當有的指針要改變這塊空間的值時,再為這個指針分配自己的空間(注意這時引用計數的變化,舊的空間的引用計數減一,新分配的空間引用計數加一)。

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的17.深浅拷贝和写时拷贝的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。