構造和析構函式的概述與定義

2021-10-04 08:02:53 字數 524 閱讀 2527

建構函式和析構函式,這兩個函式將會被編譯器自動呼叫,建構函式完成物件的初始化動作,析構函式在物件結束的時候完成清理工作。

注意:物件的初始化和清理工作是編譯器強制我們要做的事情,即使你不提供初始化操作和清理操作,編譯器也會給你增加預設的操作,只是這個預設初始化操作不會做任何事。

建構函式:例項化物件的時候系統自動呼叫

析構函式:物件釋放的時候系統自動呼叫

建構函式語法:

建構函式函式名和類名相同,沒有返回型別,連void都不可以,但可以有引數,可以過載

析構函式語法:

析構函式函式名是在類名前面加」~」組成,沒有返回型別,連void都不可以,不能有引數,不能過載

例如://建構函式(無參的構造)

data()

{num = 0;

cout<<"無參的建構函式 num = "《呼叫拷貝建構函式(如果使用者 不實現拷貝構造 系統將呼叫預設的拷貝構造)

預設的拷貝構造:單純的整體賦值(淺拷貝)

如果使用者實現了 拷貝構造 系統將呼叫使用者實現的拷貝構造

構造與析構函式

1 建構函式 作用 建立類物件,並初始化其成員。可定義多個進行過載 注 建構函式可以有引數,無返回型別,不能是虛函式,在類體外定義時其函式名前加上 類名 可過載 若乙個類物件是另乙個類物件的資料成員,那麼在建構函式建立物件時,作為資料成員的類物件要先呼叫自身的建構函式 區域性到整體 2 析構函式 作...

建構函式與析構函式

建構函式 主要作用就是為物件初始化。有一點要說的是,在繼承體系彙總,如果在建構函式中,如果沒有指定基類的建構函式,那麼編譯器會在建構函式開頭加入,基類的預設建構函式,這樣就可以初始化基類物件部分 析構函式 對於析構函式,要說的多點,實際也不太複雜,就是加入了virtual 使其具有了多型性質 inc...

建構函式與析構函式

建構函式 先看看建構函式的呼叫順序規則,只要我們在平時程式設計的時候遵守這種約定,任何關於建構函式的呼叫問題都能解決 建構函式的呼叫順序總是如下 1.基類建構函式。如果有多個基類,則建構函式的呼叫順序是某類在類派生表中出現的順序,而不是它們在成員初始化表中的順序。2.成員類物件建構函式。如果有多個成...