无参数的构造函数适合没初始化值的初始化对象,而引用拷贝适合创建对象时用另一个对象对其初始化,如果此时用的是浅拷贝则释放一个对象内存时系统会释放2次从而出错(因为它指向同一个内存),深拷贝就不存在这个问题,各自都有自己的数据。
class Array 2 { 3 public: 4 Array(){m_iCount=5;m_pArr=new int[m_iCount];} 5 Array(const Array &arr) 6 { 7 m_iCount=arr.m_iCount; 8 m_pArr=new int[m_iCount]; 9 for(int I=0;i<m_iCount;i++) 10 { 11 m_pArr[i]=arr.m_pArr[i]; 12 } 13 } 14 private: 15 int m_iCount; 16 int *m_pArr; 17 };
int main() { Array arr1; Array arr2=arr1; return 0; }