建構函式:成員函式的一種,名字與類相同,可以有引數,不能有返回值(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 一般建構函式可以有各種引數形式,乙個類可以有多個一般建構函式,前提是引數的...