C 建構函式 析構函式 複製建構函式

2021-08-21 17:44:41 字數 1046 閱讀 4340

無聊的廢話:

距離開始放假已經過去半個月了,這半個月,品讀了一本實用型的繪畫書籍,作了幾幅作品,又做了乙個模型,只是探索未知領域總會遇到各種問題,甚至難以解決的問題,筆者頹廢了兩天煲了一部劇,覺得自己深深的辜負了時間,決定動手總結一下學過的知識,主要是總結資料結構,不過筆者看到當初c++的筆記,決定再鞏固一下基礎知識,一來和大家交流,算是開個好頭,二來方便以後查閱.

建構函式

首先假定乙個時間類,以此為例進行初始化

class time

建構函式的形式一共有三種

1、time()

或者採用初始化列表的形式 ,如

time(int h;int m;int s):hour(h),  minute(m),  second(s)   {}

3、time(int h=0;int m=0;int s=0)

注:第三種建構函式可以定義無參,乙個引數,兩個引數,三個引數等多種物件

一般類的建構函式都會過載,提供多種初始化方式

析構函式

先用建構函式初始化乙個陣列

array(int nn)

}                                       //這裡的n是動態陣列元素個數,a是元素指標

~array()

複製建構函式

1、普通複製(預設複製)

date(date&d)

{year=d.year; month=d.month;day=d.day;

2、深複製(有動態成員,用深複製)

class student

//先構造,熟悉吧

student(const student&st)

//   深複製就是重新創造乙個空間來存放name的值,而不是兩個name指標指向同乙個空間

~student()

//最後把new申請的堆疊空間手動釋放掉(但凡new申請的,都必須用delete來釋放)

好啦,本篇到此完

第一次寫稿子,不懂**,蠻費勁的,好害怕寫出來的東西懂的人都懂,不懂的人看了也不懂,那簡直太失敗了,希望本篇能對那些新新人們有一點點幫助

建構函式,複製建構函式和析構函式

這些函式在網上很容易就可以查到定義和寫法,這裡就不贅述了。令人感興趣的是這些函式什麼時候執行,特別是複製建構函式和析構函式。用編寫的一段 很醜的 來說明。include include include class point point const point obj point double ge...

建構函式 複製建構函式 型別轉換建構函式 析構函式

成員函式的一種,名字與類名相同,可以有引數,不能有返回值 void也不行 乙個類可以有多個建構函式。如果定義類時沒寫建構函式,則編譯器生成乙個預設的無參建構函式,這個建構函式不做任何操作。如果定義了建構函式,則編譯器不生成預設的無參建構函式。物件生成時建構函式自動被呼叫,物件一旦生成,就再也不能在其...

C 複製建構函式和析構函式

首先,先來解釋一下幾個概念 複製建構函式 析構函式 複製建構函式 是一種特殊建構函式,具有單個形參,該形參 常用const修飾 是對該類型別的引用。當定義乙個新物件並且對他初始化的時,將顯示使用複製建構函式。當將該型別的物件傳遞給函式或者從函式返回該型別的物件的時候,將隱式的使用複製建構函式。析構函...