關於建構函式 複製建構函式與析構函式的總結

2021-09-26 09:37:35 字數 1113 閱讀 9849

建構函式:

建構函式的作用:

1) 建立物件;

2) 初始化其值;

建構函式所具有的的特性:

1) 建構函式的函式名與類名相同;

2) 沒有返回值;

建構函式的執行順序:

1) 傳參;

2) 按照類中成員變數宣告順序,依次構造其成員;

3) 執行建構函式的函式體;

建構函式有兩種過載形式:

1)帶有引數的;

2)無引數的,即預設建構函式;

例如:

class clock

;clock:: clock(int newh,int newm,int news)

clock:: clock()//建構函式

int main()

注:自定義的建構函式帶有形參,在建立物件時必須給出初始值;

複製建構函式(拷貝建構函式):

是一種特殊的建構函式,其形參是本類的物件的引用。

拷貝建構函式的作用:

使用乙個已經存在的物件,去初始化同類的乙個新物件;

拷貝建構函式的功能:

把初始值物件的每個資料成員的值都複製到新建立的物件中;

拷貝建構函式被呼叫的情況:

1)當用類的乙個物件去初始化該類的另乙個物件時;

2)如果函式的形參是類的物件,呼叫函式時;

3)如果函式的返回值是類的物件,返回函式值時,拷貝建構函式被呼叫

宣告和實現拷貝建構函式的一般方法:

class 類名

;類名::類名(類名&物件名) //拷貝建構函式的實現

例如:point 類

class point

point (point &p)

int getx()

int gety()

private:

int x,y;

};point ::point(point &p) //拷貝建構函式

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

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

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

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

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

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