C 建構函式的種類

2021-09-29 03:46:04 字數 1377 閱讀 8281

建構函式分為四種:

無引數建構函式

有引數建構函式

拷貝建構函式

預設建構函式

#include

using

namespace std;

class

test

test

(int i)

test

(int i,

int j)

test

(const test& obj)

private

:int a;

int b;

};

void

main()

void

main()

拷貝建構函式,用乙個物件去初始化另外乙個物件。

注意:賦值和初始化是兩個完全不同的概念

第一種呼叫方法:

void

main()

第二種呼叫方法:

void

main()

第三種呼叫方法:

void

f(test p)

//當這個函式被呼叫時,由於要對形參初始化,則用實參對其初始化 此時會呼叫test類的拷貝建構函式

//當該函式執行完畢後,會自動析構p,呼叫析構函式

void

main()

第四種呼叫方法:

test g()

void

main()

1、預設無參建構函式

當類中沒有定義建構函式時,編譯器預設提供乙個無參建構函式,並且其函式體為空

2、預設拷貝函式

當類中沒有定義拷貝建構函式時,編譯器預設提供乙個預設拷貝建構函式,簡單的進行成員變數的值的賦值。這裡涉及到深拷貝和淺拷貝的知識,在此不再贅述。

當類中程式設計師自己定義了任何一種建構函式(有參建構函式和賦值建構函式),編譯器都不會再提供無參建構函式。

就是說,如果你只定義了有參建構函式,那就不能單純的只寫

test t1;

//這麼寫是會報錯的,找不到可用的建構函式,

//因為此時,編譯器沒有替你自動建立乙個預設得無參建構函式

C 建構函式 拷貝建構函式

建構函式 class base private int m var 建構函式無返回值型別,函式名和型別相同。拷貝建構函式傳遞引數為引用。1 class base2 7 拷貝建構函式 8 base base ref m var ref m var 9 11 private 12 intm var 13...

C 的建構函式

tags c 建構函式是用於建立物件的特殊成員函式,當建立物件時,系統自動呼叫建構函式建構函式的作用是 為物件分配空間 對資料成員賦初值 請求其他資源 沒有使用者定義的建構函式時,系統提供預設版本的建構函式 建構函式名與類名相同 類名 建構函式可以過載,建構函式可以有任意型別的引數,但沒有返回型別。...

C 的建構函式

1 定義 在基於物件的程式中,在定義乙個物件時,也需要作初始化的工作,即對資料成員賦初值。因為不能再類宣告中對資料成員初始化 類並不是乙個實體,而是乙個抽象型別,並不占用儲存空間,顯然無法容納資料 c 提供了建構函式來處理物件的初始化。建構函式是一種特殊的成員函式,與其他成員函式不同,不需要使用者來...