動態陣列類 物件的淺複製 物件深複製

2021-07-02 04:39:08 字數 1658 閱讀 7999

1.將動態陣列封裝成類

#include #include using namespace std;

class point

point(int x, int y) :x(x), y(y)

~point()

int getx() const

int gety() const

void move(int newx, int newy)

private:

int x, y;

};class arrayofpoints

;arrayofpoints::arrayofpoints(int _size)

arrayofpoints::~arrayofpoints()

point& arrayofpoints::element(int index)

int main()

2.物件淺複製

#include #include using namespace std;

class point

point(int x, int y) :x(x), y(y)

~point()

int getx() const

int gety() const

void move(int newx, int newy)

private:

int x, y;

};class arrayofpoints

;arrayofpoints::arrayofpoints(int _size)

arrayofpoints::~arrayofpoints()

point& arrayofpoints::element(int index)

int main()

物件1的改變引起物件2(淺複製得到)的改變。

3.物件的深複製

#include #include using namespace std;

class point

point(int x, int y) :x(x), y(y)

~point()

int getx() const

int gety() const

void move(int newx, int newy)

private:

int x, y;

};class arrayofpoints

;arrayofpoints::arrayofpoints(int _size)

arrayofpoints::~arrayofpoints()

point& arrayofpoints::element(int index)

arrayofpoints::arrayofpoints(const arrayofpoints& v)

}int main()

物件1的改變不引起物件2的改變

來自清華mooc課件

物件和陣列的淺複製和深複製

之前踩過一些複製的坑,現在總結一下記錄下來,供以後開發時參考,相信對其他人也有用。淺複製 一般用object.assign,如果支援es6的話也可以用新語法 const obj 可以用object.assign const obj2 object.assign obj1 es6的解構 const o...

NS物件的深複製與淺複製

1.copy 和 mutablecopy 不可變 copy 非容器或容器 淺複製 可變 copy,mutablecopy 不可變 mutablecopy 非容器或容器 深複製 容器內物件,始終為淺複製 2.initwitharray 和 initwitharray copyitems diction...

物件或者陣列的深複製與淺複製的區別

深複製 比如b複製了a,b修改了a則不會修改 淺複製 比如b複製了a,b修改了a也會跟著改變 以上就是深淺複製的區別 下面直接插入 深度複製直接暴力快速解決 let aaaobj 這裡是深度複製aaaobj let bbbobj json.parse json.stringify aaaobj 分割...