深拷貝:申請記憶體空間,進行拷貝複製
淺拷貝:簡單的複製拷貝,無記憶體空間
ps:若在堆區建立了記憶體,一定要自定義拷貝建構函式,避免淺拷貝帶來的問題;
「淺賦位址,共享記憶體;深開記憶體,復存內容」
**演示:
#include
using
namespace std;
class
person
person
(int age,
int height)
//自己構造拷貝建構函式,用深拷貝解決淺拷貝帶來的問題
person
(const person &p)
~person()
cout <<
"person 的預設析構函式呼叫"
<< endl;
}int m_age;
int*m_height;};
void
test01()
intmain()
「淺拷貝」與「深拷貝」
c 中物件的複製就如同 轉殖 用乙個已有的物件快速地複製出多個完全相同的物件。一般而言,以下三種情況都會使用到物件的複製 1 建立乙個新物件,並用另乙個同類的已有物件對新物件進行初始化,例如 cpp view plain copy class rect rect rect1 rect rect2 r...
淺拷貝與深拷貝
淺拷貝 1 2 myclass a,b a b 為了封裝性和解耦,同型別的兩個物件之間進行賦值操作時,所有成員變數被複製,包括私有成員 指標變數。類的成員函式在傳遞或返回物件時都會進行物件複製產生臨時物件,比如函式呼叫時實參變為形參,以及函式返回物件。考慮到效能和使用者要求不同,編譯器不複製物件內部...
「淺拷貝」與「深拷貝」
c 中物件的複製就如同 轉殖 用乙個已有的物件快速地複製出多個完全相同的物件。一般而言,以下三種情況都會使用到物件的複製 1 建立乙個新物件,並用另乙個同類的已有物件對新物件進行初始化,例如 cpp view plain copy class rect rect rect1 rect rect2 r...