CMyArray array1;
CMyArray array2(10,20);
CMyArray array3(array2); //
CMyArray array4;
array4 = array2;
CMyArray array5=array2;
CMyArray 是自己的定义的一个类;
CMyArray array3(array2); 调用 拷贝构造函数。
CMyArray array5=array2; 调用 拷贝构造函数(隐式调用)。如果在拷贝构造函数前 加 explicit 关键字。这条语句不能执行。
array3 = array2; 调用 operator= 函数(赋值函数)。operator= 必须是成员函数。
区别赋值函数和拷贝构造函数:
赋值函数是 用已经存在的对象赋值给已经存在的对象。
拷贝构造函数是 用已知的对象初始化定义中的对象。即该对象之前不存在。
拷贝函数分为深拷贝和浅拷贝:
浅拷贝 是 内存的拷贝。即如果有需要手动释放内存的话,则是指向同一区域。
深拷贝 是 内容的拷贝。即如果有需要手动释放内存的话,则是指向不同区域。