1.兩個拷貝之間主要是用於對象之間的拷貝!
2.區別
沒指針:
深拷貝和淺拷貝沒什麼區別;
有指針:
淺拷貝:即對象的默認拷貝函數,只是將指針的地址拷貝給對象,兩個變量同時指向一個地址,這樣在析構的時候必然會導致程序崩潰;
1 class A
2 {
3 public:
4 A()
5 {
6 m_Data = new char[100];
7 }
8 ~A()
9 {
10 delete []m_Data;
11 m_Data = NULL;
12 }
13
14 protected:
15 private:
16 char* m_Data;
17 };
18
19 int _tmain(int argc, _TCHAR* argv[])
20 {
21 A a;
22 A b(a);
23
24 return 0;
25
深拷貝:即要自定義拷貝函數,將指針new一段新內存保存起來;這樣析構也不會崩潰;