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 分割...