建構函式的作用:可以對物件進行初始化
使用方法:不需要使用者來呼叫,在建立物件時自動執行。
不帶引數的建構函式對物件的初始化只能有一種情況,不能在定義物件時對物件進行任意初始化。(詳見例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 複製建構函式 建...