物件導向 建構函式與初始化引數列表

2021-10-07 08:35:40 字數 1123 閱讀 3128

#include

class

complex

complex

(int r,

float i)

:real

(r),

image

(i)//初始化引數列表的方式實現

double

getreal()

float

getimage()

};void

main()

建構函式名(引數列表): 成員1(初始值), 成員2(初始值),…

定義:介於建構函式的引數列表後面的冒號「:」(英文格式下)與函式體之間的內容;

含義:將括號中的初始值(引數的值)賦值給該括號前面的成員。

初始化引數列表中,成員初始化次序與它們在類中的宣告次序相同,與初始化引數列表中的次序無關。

② 資料成員的執行次序為: 類內初始 -> 初始化引數列表 -> 建構函式體

③ 常量成員、引用成員、類物件成員、派生類建構函式對基類建構函式的呼叫 都可採用類內初始或初始化列表進行初始化。

例子:

class

tdate

;tdate::

tdate

(int m,

int d,

int y)

:month

(m),

day(d)

,year

(y)tdate::

tdate

(int m,

int d,

int y)

:year

(y),

month

(m),

day(d)

tdate::

tdate

(int m,

int d,

int y)

:day

(d),

year

(y),

month

(m)

儘管三個建構函式初始化列表中的month、day和year的次序不同,但它們都是按照其在tdate中的宣告次序「month→day→year」初始化的!

建構函式 引數初始化列表

建立類物件時會自動呼叫建構函式 建構函式不需且不能手動呼叫 預設建構函式 在建立物件時不必給出實參的建構函式。包括無參建構函式和全部引數都有預設值的建構函式。如果使用者沒有定義建構函式,則系統會自動提供乙個預設建構函式,即上述的無參建構函式,函式體為空。當給類中的私有常量定義時,必須通過引數初始化列...

關於初始化建構函式列表

建構函式初始化列表 建構函式初始化列表示例如下 sales item sales item const string book isbn book units sold 0 revenue 0 建構函式初始化列表以冒號開始,以逗號分隔資料成員,每個資料成員後面跟上其初始值,上面的建構函式將isbn成...

Java 物件構造與初始化

如果沒有this及super,則編譯器自動加上super 即呼叫直接父類不帶引數的構造方法。任何子類必須先或顯示或隱式地呼叫直接父類的構造方法。class constructcallthisandsuper class person person string name,int age class ...