程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 對深拷貝及淺拷貝的理解,拷貝理解

對深拷貝及淺拷貝的理解,拷貝理解

編輯:C++入門知識

對深拷貝及淺拷貝的理解,拷貝理解


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一段新內存保存起來;這樣析構也不會崩潰;

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved