#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 ...