C 建構函式 複製建構函式詳解

2021-10-02 10:06:29 字數 1103 閱讀 4518

建構函式:成員函式的一種,名字與類相同,可以有引數,不能有返回值(void也不行)。

作用:對物件進行初始化,如給成員變數賦值。

物件生成時,建構函式自動被呼叫,物件一旦生成,就再也不能再其上執行建構函式。

乙個類可以有多個建構函式。

為什麼需要建構函式?

有了建構函式就不必專門再寫初始化函式,物件沒有被初始化就使用,會導致出錯

#include

using namespace std;

class temp };

intmain

(int argc,

char

**ar**)

如果不寫建構函式,類會自動生成建構函式將物件中成員變數初始化為0。

複製建構函式

將乙個類的物件複製給這個類的另乙個物件。

有乙個類temp,現在已經有乙個物件c1了,而我還想得到乙個和c1一樣的物件,我們可以這樣寫:temp c2(c1) 這樣就會呼叫複製建構函式,將物件c2變為和c1一樣。

在編寫類的時候如果沒有編寫複製建構函式,編譯器會自動生成乙個複製建構函式。

複製建構函式的編寫

#include

using namespace std;

class temp

temp (

const temp &c)};

intmain

(int argc,

char

**ar**)

複製建構函式的引數必須為引用

複製建構函式起作用的三種情況:

1、將乙個物件複製給另乙個物件

temp c2(c1);

temp c2 = c1;

2、函式的引數

void func(temp c1)

int main()

3、函式的返回值

如果函式的返回值是類temp的物件,則函式返回時,temp的複製建構函式被呼叫

注意:物件間賦值(類似s.val=1)並不導致賦值建構函式被呼叫。

C 建構函式詳解(複製建構函式)

該類物件被建立時,編譯系統物件分配記憶體空間,並自動呼叫該建構函式,由建構函式完成成員的初始化工作,故 建構函式的作用 初始化物件的資料成員。1 class complex 2 18 19 一般建構函式 也稱過載建構函式 20 一般建構函式可以有各種引數形式,乙個類可以有多個一般建構函式,前提是引數...

C 建構函式詳解(複製建構函式)

該類物件被建立時,編譯系統物件分配記憶體空間,並自動呼叫該建構函式,由建構函式完成成員的初始化工作,故 建構函式的作用 初始化物件的資料成員。class complex 一般建構函式 也稱過載建構函式 一般建構函式可以有各種引數形式,乙個類可以有多個一般建構函式,前提是引數的個數或者型別不同 基於c...

C 建構函式詳解(複製建構函式)

該類物件被建立時,編譯系統物件分配記憶體空間,並自動呼叫該建構函式,由建構函式完成成員的初始化工作,故 建構函式的作用 初始化物件的資料成員。1 class complex 2 1819 一般建構函式 也稱過載建構函式 20 一般建構函式可以有各種引數形式,乙個類可以有多個一般建構函式,前提是引數的...