建構函式簡介

2021-10-01 16:54:00 字數 1905 閱讀 5377

建構函式的作用:可以對物件進行初始化

使用方法:不需要使用者來呼叫,在建立物件時自動執行。

不帶引數的建構函式對物件的初始化只能有一種情況,不能在定義物件時對物件進行任意初始化。(詳見例1)

帶引數的建構函式可以在定義物件時對物件進行任意初始化(詳見例2)

建構函式的過載:在乙個類中可以定義多個建構函式,這樣可以為物件提供不同的初始化的方法(詳見例3)

預設引數的建構函式:建構函式中引數的值既可以通過實參傳遞,也可以 指定為某些預設值,即如果定義物件時不指定實參值,編 譯系統就使形參取預設值。 (使用預設引數的建構函式的好處是,這乙個函式相當於好幾個過載函式)(詳見例4

例1

#include

using

namespace std;

class

box;

box::

box(

)int box::

jisuan()

//計算函式

intmain()

例2

#include

using

namespace std;

class

box;

box::

box(

int x,

int y,

int z)

int box::

jisuan()

//計算函式

intmain()

例3

#include

using

namespace std;

class

box;

box::

box(

)box::

box(

int x,

int y,

int z)

int box::

jisuan()

//計算函式

intmain()

例4

#include

using

namespace std;

class

box;

box::

box(

int h,

int w,

int l)

int box::

jisuan()

//計算函式

intmain()

;cout<<

"第1個長方體的體積為"

<

.jisuan()

<

cout<<

"第2個長方體的體積為"

<

.jisuan()

<

cout<<

"第3個長方體的體積為"

<

.jisuan()

<

return0;

}

圖一

圖二

圖三

圖四

乙個類只能有乙個預設建構函式。如果使用者未定義建構函式,則系統會自動提供乙個預設建構函式,但它的函式體是空的,不起初始化的作用。如果使用者希望在建立物件時就能使資料成員有初值,就必須自己定義建構函式。

建構函式 拷貝建構函式 賦值建構函式

class和struct很大乙個區別在於,c除了成員的訪問控制許可權,struct中的成員預設是public,而class中的field預設是private class還有乙個special的地方是它有建構函式 constructor。建構函式是class中的一員,和成員變數 其他成員函式一起構成乙...

構造函式呼叫建構函式

題目如下 問下列 的列印結果為0嗎?include stdlib.h include iostream using namespace std struct clscls int main 列印結果是不定的,不一定為0 奇怪的地方在於建構函式中呼叫了自己的另乙個建構函式 我們知道,當定義乙個物件時,...

建構函式 拷貝建構函式

建構函式可以分為三類 1 不帶引數的建構函式 在函式體中對資料成員賦初值,這種方式使該類的每乙個物件都得到同一組初值 2 帶引數的建構函式 如果使用者希望對不同的物件賦不同的初值,可以採用帶引數的建構函式。在呼叫不同物件的建構函式時從外面將不同的資料傳遞給建構函式,以實現初始化 3 複製建構函式 建...