C 類與物件 2

2021-10-23 01:59:33 字數 850 閱讀 2324

所謂建構函式其實就是初始化物件的乙個函式

每個物件在建立時都會自動呼叫建構函式,如果你沒有定義,就會呼叫系統預設的建構函式。

建構函式的函式名與類名相同

建構函式無返回型別(void也不可以)

在物件建立時由系統自動呼叫,建構函式的訪問屬性為public

class a;

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

為了在呼叫過程中保護實參物件的資料安全,常常將形參物件的引用加const。

一般情況下,僅僅是通過拷貝建構函式初始化乙個新物件,則隱含的拷貝建構函式即可完成,即自定義的建構函式可以省略。

**但是,**若類中包含指標型別的資料成員時,預設的拷貝建構函式會產生指標懸掛問題。

簡單舉例就是在執行析構函式時,乙個指標變數會被析構2次。

在物件的生存期結束的時刻系統自動呼叫它,然後再釋放此物件所屬的空間。

(1)析構函式無引數、無返回值。

(2)只能有乙個析構函式,即不能過載。

(3)析構函式的作用不是釋放物件,而是系統釋放對

象前的一些清理工作。

class a;

//外部定義

a::~a()

建構函式和析構函式的呼叫次序

先構造的後析構,後構造的先析構。

class a//大括號不能少

};from nuister kjr

C 類與物件(2)

一.類的6個預設建構函式 建構函式 主要完成初始化工作 析構函式 主要完成清理工作 拷貝建構函式 使用同類物件初始化建立物件 賦值操作符過載 主要是把乙個物件賦值給另乙個物件 取位址及const取位址操作符過載 主要是普通物件和const物件取位址 二.建構函式 1.概念 建構函式是乙個特殊的成員函...

C 類與物件 2

1.類的6個預設成員函式如果乙個類中什麼成員都沒有,簡稱為空類。空類中什麼都沒有嗎?並不是的,任何乙個類在我們不寫的情況下,都會自動生成下面6個預設成員函式。建構函式 拷貝建構函式 析構函式 賦值運算子過載函式 取位址運算子過載函式 const修飾的取位址運算子過載 2.建構函式 2.1建構函式概念...

2)類與物件

public class dog void hungry void sleeping 乙個類可以包含以下型別變數 構造方法 class person static void main string args 例如 hello hello new hello 這時呼叫的是hello的無引數構造方法 h...