嵌入式物件導向程式開發 深拷貝與淺拷貝

2021-10-04 12:14:39 字數 422 閱讀 1659

1、淺拷貝:對基本型別資料以及簡單的物件直接複製記憶體的拷貝。但是,當類的成員包含指標的時候,使用淺拷貝是將拷貝物件的位址賦值給了新的物件,導致兩個指標指向了同一塊記憶體空間,這時候淺拷貝就不能滿足實際要求了,需使用深拷貝。

示例: 

test (const test &other)

2、深拷貝:當類持有其它資源(如動態分配的記憶體、指向其他資料的指標等)時使用的拷貝。此時預設的拷貝建構函式不能拷貝這些資源,我們必須顯式地定義拷貝建構函式,以完整地拷貝物件的所有資料。

注:​對於簡單的類,預設的拷貝建構函式一般就夠用了,我們也沒有必要再顯式地定義乙個功能類似的拷貝建構函式。

示例: 

test (const test &other)

嵌入式物件導向程式開發(1)

d2.26 嵌入式物件導向程式設計 嵌入式linuxc 開發 學習內容 c c with class 95 c中學過的資料型別 基本控制語句 函式 關鍵字 位運算 指標 陣列 1 c到c 公升級 語法公升級 2 c 物件導向的三大特點 封裝 繼承 多型 3 c 模板 4 c 異常處理 5 c 檔案處...

嵌入式物件導向程式開發(5)

五 深拷貝與淺拷貝 1 淺拷貝 對基本型別資料以及簡單的物件直接複製記憶體的拷貝。但是,當類的成員包含指標的時候,使用淺拷貝是將拷貝物件的位址賦值給了新的物件,導致兩個指標指向了同一塊記憶體空間,這時候淺拷貝就不能滿足實際要求了,需使用深拷貝。示例 test const test other m i...

嵌入式物件導向程式開發 C 模板

概述模板是一種引數化的多型工具。所謂引數化的多型性,是指將程式所處理的物件的型別引數化,使一段程式 可以用於處理多不同型別的物件。採用模板程式設計,可以為各種邏輯功能相同而資料型別不同的程式提供一種 共享的機制。1 函式模板 1 一般說明形式 template 模板形參表 返回值型別函式名 模板函式...