c 深淺拷貝

2022-07-18 09:06:13 字數 241 閱讀 8949

對於普通型別的物件來說,它們之間的複製是很簡單的,例如:

int a=88;

int b=a;

而類物件與普通物件不同,類物件內部結構一般較為複雜,存在各種成員變數。下面看乙個類物件拷貝的簡單例子。

執行程式,螢幕輸出100。從以上**的執行結果可以看出,系統為物件b分配了記憶體並完成了與物件a的複製過程。就類物件而言,相同型別的類物件是通過拷貝建構函式來完成整個複製過程的。下面舉例說明拷貝建構函式的工作過程。

C 深淺拷貝

當結構體中沒有指標時,可進行淺拷貝,資料也會從乙個結構體拷貝到另乙個結構體 兩個結構體都存乙份資料 但當結構體中有指標的時候,假如使用使用淺拷貝,會使兩個結構體使用的指標都指向同乙個記憶體位址,在析構的時候會造成記憶體洩漏。深拷貝 需要對含有指標的結構體,使用 new 申請新的記憶體空間去儲存拷貝的...

C 什麼是深淺拷貝,深淺拷貝的區別?

淺拷貝 class string string const string s str s.str string operator const string s 返回引用是為了連續的賦值 return this string 防止野指標的出現 str null char str get void st...

《深 淺拷貝解析(C )》

問題 在c 中如果沒有顯式定義拷貝建構函式,編譯系統會生成預設的拷貝建構函式,這種機制方便程式設計師編寫程式的同時也為程式設計師帶來了一些麻煩。當類中含有指標成員變數時,預設的拷貝建構函式會將拷貝函式的指標變數值賦給待拷貝建構函式的指標變數,使兩個指標變數指向同一片空間,物件銷毀時,析構函式就會釋放...