淺複製又稱淺拷貝,指的是在物件複製時,只是對物件中的資料成員進行簡單的賦值,預設複製建構函式執行的也是淺複製。淺複製例項**如下:
#include
using namespace std;
class test
test(test &c_t)
int p1;
protected:
private:
};int main()
深複製又稱深拷貝,對於物件中的動態成員,就不僅僅是簡單的賦值了,而是重新動態分配空間。深複製的示例**如下:
#include
using namespace std;
class rect
rect(const rect& r)
~rect()}}
protected:
private:
int width;//寬
int heigh;//高
int *p;//指標成員
};int main()
上面**中rect1的p和rect2的p各指向一段記憶體空間,但他們指向的空間具有相同的內容。
如果乙個類擁有資源,當這個類的物件發生複製的過程,這個過程就可以叫做深複製,如果物件存在資源但在複製過程中並未複製資源就是淺複製。
淺複製與深複製
舉個複製 的例子 function clone p,s for var prop in p return s var a var b clone a,b b.hobby 1 reading b.hobby 1 reading c.hobby 1 reading 由上面的例子可以看出,當執行淺複製時,...
深複製與淺複製
2者主要區別 是否為成員變數分配新記憶體空間 複製建構函式有2種 深複製與淺複製 當將乙個物件a複製給另乙個物件b時,系統會呼叫複製建構函式 編譯器預設的複製建構函式是淺拷貝,它將原物件的每乙個成員變數複製到新物件的成員變數中去。因而最後兩個物件的變數均指向相同的資料成員的記憶體位址。當資料成員中沒...
淺複製與深複製
1.淺複製 被複製物件的所有變數都含有與原來的物件相同的值,而其所有的對其他物件的引用都仍然指向原來的物件。說明 乙個物件中的資料成員 include using namespace std class test test const test c 複製建構函式,提供乙個同型別物件作為引數 void...