89 賦值過載以及深淺拷貝

2022-03-13 01:44:56 字數 728 閱讀 8445

**示例:

1

#define _crt_secure_no_warnings

2 #include 3

using

namespace

std;45

//非指標,則深淺拷貝都一樣,含有指標則記憶體共享,指標一致,內容一直6//

深拷貝,指標不一致,記憶體一直,記憶體是獨享的7//

賦值過載如果有返回自身型別物件,會呼叫拷貝構造8//

原理是:先操作乙個類,再把操作的這個類拷貝到本類中,即使返回(*this),也會呼叫910

class

mystring

1119

20 mystring(char *str)

2127

28 mystring(const mystring &my)

2936

37///

/過載=

38//

void operator =(const mystring &stringmy)

39//

4647

//使可以多次過載

48 mystring operator =(const mystring &stringmy)

4958

59 ~mystring()

6063

};64

65void

main()

66

對 「 」, 「is」 以及賦值 深淺拷貝的理解

與 is 的區別 判斷 值,比較兩個物件是否相等 is 判斷 位址,比較兩個引用是否指向了同乙個物件 引用比較 賦值 深拷貝 淺拷貝的區別 首先,不可變資料型別的記憶體都指向同乙個位址,所以深拷貝和淺拷貝對於不可變資料型別而言都是無意義的。對於不可變資料型別 import copy 深拷貝 pyth...

賦值與深淺拷貝

a 1 b a a 2 print a a print b b 列印出結果 a 2 b 1 解析 當a 1的時候,記憶體中開闢兩個空間,乙個空間存放數字1,乙個空間存放數字1的實體地址0x52446c40,當b a的時候,是將a的值賦予b,記憶體中會開闢另乙個空間也是存放數字1的實體地址0x5244...

深淺拷貝以及深淺拷貝的方法

先考慮一種情況,對乙個已知物件進行拷貝,編譯系統會自動呼叫一種建構函式 拷貝建構函式,如果使用者未定義拷貝建構函式,則會呼叫預設拷貝建構函式。執行結果 呼叫一次建構函式,呼叫兩次析構函式,兩個物件的指標成員所指記憶體相同,name指標被分配一次記憶體,但是程式結束時該記憶體卻被釋放了兩次,會造成記憶...