C 物件導向(二) 預設的建構函式(2)

2021-08-10 16:19:22 字數 983 閱讀 1592

c++——物件導向(二)

拷貝建構函式:

用乙個已經存在的物件初始化相同型別新物件 ,

呼叫的拷貝建構函式,必須傳引用

防止實參和形參遞迴構造

系統提供的拷貝建構函式  ,淺拷貝,多次釋放同一資源

初始化和賦值的區別:

初始化:定義的同時賦值

賦值:定義後再給值

實參到形參是賦值的過程,

不能按照物件的值進行傳遞,會引起遞迴構造

預設的拷貝構造,物件的記憶體互相初始化,淺拷貝會導致崩潰,拷貝建構函式實現後,**執行正常

cgoods good3 = good2;  this指標指向good3,rhs引用good2函式,rhs是外部的,可以直接訪問外部物件私有的成員,同乙個類型別生成的不同物件,共享成員方法,rhs引用的物件和this指標指向的物件,它們的型別是一樣的,

什麼情況下會發生淺拷貝,當物件

建構函式自己無法呼叫,是系統根據定義的物件的型別所選擇的。析構可以自己調,自己調了,系統還調,

預設構造構造good1

帶三個引數的構造構造good2,

拷貝建構函式,用good2拷貝構造good3

賦值運算子過載 用good3給good1賦值

good3析構

good2析構

good1析構

當呼叫good1 = good1時,計算0位址的有效字元,會崩潰,0位址是不可訪問的,防止自賦值,

3步:1.防止自賦值

2.釋放舊資源

3.開闢新資源進行初始化

C 物件導向程式設計《二》 建構函式

class complex 類的前置宣告只是告訴將類的名稱編譯器,並未提供class的任何其他資訊,因此前置宣告使我們得以使用類的指標和引用,而不能使用類的物件,如下 complex p 0 定義乙個類指標 class pointer void func const complex 以complex...

C 物件導向(二) 構造 析構函式

析構函式 destructor 構造 析構順序 建構函式 也叫構造器 在物件建立的時候回自動呼叫,一般用於完成物件的初始化工作 函式名與類同名,無返回值,可以有引數,可以過載,可以有多個建構函式 struct person person int age intmain 一旦自定義了建構函式,必須用其...

C 物件導向程式設計 建構函式

建構函式的相互呼叫又稱為 建構函式初始化器,這是c 的乙個特殊的語法 在有些時候,建構函式內包含一些共同的 為了達到 的復用性,函式初始化器很好的解決了這一問題 示例 如下 using system namespace mycsharppro private int age public perso...