C 學習筆記之建構函式和析構函式

2021-10-08 04:29:50 字數 1421 閱讀 8359

c++學習筆記之建構函式和析構函式

c++利用了建構函式和析構函式來解決成員變數初始化和銷毀清理工作,這兩個函式將會被編譯器自動呼叫,完成物件初始化和清理工作。

物件的初始化和清理工作是編譯器強制要求我們做的事情,因此如果我們不提供建構函式和析構函式,編譯器會給我們提供預設的建構函式和析構。編譯器所提供的建構函式和析構函式是空實現

**建構函式:**主要作用於建立物件時為物件的成員屬性賦值,建構函式由編譯器自動呼叫,無需手動呼叫。

**析構函式:**主要作用於在物件銷毀前系統自動呼叫,執行一些清理工作。

建構函式語法

類名 (

)

~類名 (

)

person p;

//預設建構函式

person p2()

;//有參建構函式

person p3

(p2)

;//拷貝建構函式

顯示法:

person p1;

person p2 =

person(10

);//有參構造

person p3 =

person

(p2)

;//拷貝構造

隱式轉換法

person p4 =10;

//相當於 person p4 = person(10) 有參構造

person p5 = p4;

//拷貝構造

構造函式呼叫規則

預設情況下 c++編譯器至少給乙個類3個函式

1.預設建構函式(無參,函式體為空)

2.預設析構函式(無參,函式體為空)

3. 預設拷貝建構函式,對屬性進行值拷貝

呼叫規則

1.如果使用者定義有參建構函式,c++不再提供預設無參構造,但是會提供預設拷貝構造。

4. 如果使用者自定義拷貝建構函式,c++不會再提供其他建構函式。

class

person

//有參建構函式

person

(int a)

//拷貝建構函式

person

(const person& p)

//析構函式

~person()

public

:int age;};

void

test01()

void

test02()

intmain()

c 學習筆記 建構函式和析構函式

一 建構函式作用 幫助我們初始化物件 給物件的每個屬性依次的賦值 建構函式是乙個特殊的方法 建構函式沒有返回值,連 void 也不能寫。建構函式的名稱必須跟類名一樣。建立物件的時候會執行建構函式建構函式是可以有過載的。類當中會有乙個預設的無引數的建構函式,當你寫乙個新的建構函式之後,不管是有引數的還...

C 學習之建構函式 析構函式

在c 的類中,都會有乙個或多個建構函式 乙個析構函式 乙個賦值運算操作符。即使我們自己定義的類中,沒有顯示定義它們,編譯器也會宣告乙個預設建構函式 乙個析構函式和乙個賦值運算操作符。例如 宣告乙個空類 class empty 但是這個空類和下面這個類是等同的 class empty 預設建構函式 e...

C 之建構函式和析構函式

我們已經知道了物件就是類的例項,二者的關係就相當於資料型別與它的變數的關係。每個物件區別於其他物件的地方就是依靠它的自身屬性,即資料成員的值。c 中,物件在定義的時候進行的資料成員的設定,稱為物件的初始化。同樣,在特定物件使用結束時,還要對資料成員進行一些清理工作。c 中對類的初始化和清理的工作,分...