6 物件特性之建構函式和析構函式

2022-08-20 12:12:13 字數 989 閱讀 7397

物件的初始化和處理也是兩個非常重要的安全問題,c++利用建構函式和析構函式解決上述問題。這兩個函式會被編譯器自動呼叫,如果我們不提供構造和析構,編譯器會提供編譯器提供的建構函式和析構函式是空實現。

#include using namespace std;

//物件的初始化和處理

class person

{public:

//1.建構函式,初始化操作

person()

{cout <<"person 建構函式的呼叫" 《兩種分類方式:

三種呼叫方式:

#include using namespace std;

//1. 建構函式的分類及呼叫

class person

{public:

//建構函式,型別有參與無參(預設構造)

person()

{cout <<"person 無參(預設)建構函式的呼叫" 《注意事項:

c++中拷貝建構函式的呼叫時機通常由三種情況

#include using namespace std;

class person

{public:

person()

{cout << "person 預設構造函式呼叫"《預設情況下,c++編譯器至少給乙個類新增3個函式

淺拷貝:簡單的賦值拷貝操作 ————> 問題:由於棧的先進後出,堆區的重複釋放

深拷貝:在堆區重新申請空間,進行拷貝操作 ————> 解決淺拷貝帶來的問題

小結:如果屬性有在堆區開闢的,一定要自己提供拷貝建構函式,防止淺拷貝帶來的問題

#include using namespace std;

class person

{public:

person()

{cout << "person 預設構造函式呼叫"<

9 物件的建立和撤銷,建構函式和析構函式

一是建構函式,在物件建立時自動呼叫,用以完成物件成員變數等的初始化及其他操作 如為指標成員動態申請記憶體空間等 如果程式設計師沒有顯式的定義它,系統會提供乙個預設的建構函式。另乙個是析構函式,在物件撤銷時自動呼叫,用以執行一些清理任務,如釋放成員函式中動態申請的記憶體等。如果程式設計師沒有顯式的定義...

C 特性探尋 建構函式和析構函式

建構函式提供了一種機制,通過它有機會完成必要的初始化工作,從而使物件成為有意義 的存在物,而不僅僅只是一塊原始的空間。但是,我們逐漸了解到,建構函式具有的地位,不僅對於使用者 程式設計師 對於編譯器履 行職責也極為重要。通過這個機制,它讓c 的一些基本的特性,如繼承 多型得到了正確 的貫徹和表現。首...

物件導向之建構函式和析構函式之五

題 請看下面一段程式 include stdafx.h include include include class b private int data public b std cout 1 該程式輸出的結果是什麼?為什麼會有這樣的輸出?2 b int i data i 這種用法的專業術語叫什麼?...