c++允許同型別變數之間的賦值,int a = 100; int b = a;
物件是一種複雜的類型別,很多時候我們需要用乙個物件去建立另乙個物件,或者將乙個物件賦值給另乙個物件,這時需要用拷貝建構函式
(當用已存在的物件為了乙個新的物件賦值時,既要給新物件的資料成員分配空間資源,也要給新物件的資料成員賦予相應的值,即既要建立新物件,又要用原物件的值初始化。)
定義方法:該建構函式的引數必須是該類物件的引用
定義格式:
類名::拷貝建構函式名(類名 &引用名)
cdate::cdate(cdate &c) //形參是物件的引用
cstring(const cstring &str) //形參是乙個const的物件引用
預設拷貝建構函式:將乙個物件的全部資料成員賦值給另乙個物件的資料成員
淺拷貝與深拷貝 如果乙個類擁有資源,當這個類的物件發生複製過程時,資源重新分配,即深拷貝,
反之淺拷貝(僅僅逐個成員拷貝)(系統提供的預設的拷貝建構函式),淺拷貝是指源物件與拷貝物件共用乙份實體,僅僅用的變數(名稱)不同,對其中任何乙個物件的改動都會影響另乙個物件。
拷貝建構函式,預設拷貝建構函式
拷貝建構函式,預設拷貝建構函式 1.c 的預設拷貝建構函式,從深度拷貝和淺拷貝說起 c 類的預設拷貝建構函式的弊端 c 類的中有兩個特殊的建構函式,1 無參建構函式,2 拷貝建構函式。它們的特殊之處在於 1 當類中沒有定義任何建構函式時,編譯器會預設提供乙個無參建構函式且其函式體為空 2 當類中沒有...
建構函式 拷貝建構函式
建構函式可以分為三類 1 不帶引數的建構函式 在函式體中對資料成員賦初值,這種方式使該類的每乙個物件都得到同一組初值 2 帶引數的建構函式 如果使用者希望對不同的物件賦不同的初值,可以採用帶引數的建構函式。在呼叫不同物件的建構函式時從外面將不同的資料傳遞給建構函式,以實現初始化 3 複製建構函式 建...
建構函式 拷貝建構函式
person person 引用就是指標常量 所以person p person const p,引用所以一旦初始化指向某個位址,就不能在改變了。為什麼前面還要加const,因為拷貝建構函式的目的就是將乙個物件的所有屬性拷貝到另外乙個物件,這個物件的屬性不變,加上const 相當於 const pe...