物件的複製

2021-10-06 09:40:28 字數 558 閱讀 3676

物件的複製
#include 「box.h」

#include

using namespace std;

int main()

這裡首先宣告了乙個物件box1(12,34,56),實引數為12,34,

56,然後我再宣告乙個物件box2,並將物件box1賦值給物件

box2,所以box2就獲得box1的同款實參,同理,將已經複製

好的的物件box2賦值給box3物件,此時物件box3就獲得box2

的同款引數,之後再呼叫函式volume進行輸出物件的初始化模

板為:類名 物件2=物件1,將物件1的值賦值給對像2;

例如:box box2(box1)或者box box2=box,需要注意的是:

進行物件複製的時候也要進行也要建構函式進行修改,例如原

本的建構函式為 :box(int len,int w,int h)

修改後的建構函式為:box(box & b)

另一種樣式為:box box2(box1)

本質為:類名(類名 & 物件名)

物件的深度複製

深度複製就是將引用成員指向的物件也進行複製。實際的過程是建立新的引用成員指向的物件,然後複製物件包含的資料。深度複製可能會變得非常複雜,因為引用成員指向的物件可能包含另乙個引用型別成員,最簡單的例子就是乙個線性鍊錶。如果乙個物件的成員包含了對於線性鍊錶結構的乙個引用,淺度複製 只複製了對頭結點的引用...

陣列物件的複製

public static void main string args int a2 a1 乙個陣列物件可以被兩個陣列物件同時引用 a2 0 6 system.out.println a1 0 6 這種現象叫做陣列賦值,可以發現如果這樣複製,陣列物件沒有隔離性,不小心就修改了 所以使用陣列的複製實現...

Spring的物件複製

最近在寫對外開放的介面遇到乙個問題就是有些敏感資料不想返回給前台,但又不的不去查詢,於是就想到再建乙個實體類然後把需要展示的資料set進去發現太麻煩,而且 也很長,所以就是用了spring自帶的方法。beanutils.copyproperties 原始資料 展示給前台的資料 但這個只能是乙個實體類...