建構函式和其他函式不同,除了有名字,引數列表,函式體之外還有初始化列表。
class
data
~data()
void
showdata
(void)}
;void
test01()
classaa
(int a)~a
()};
classbb
(int b)~b
()};
class
data
//初始化列表:物件名+() 顯示呼叫 呼叫物件成員的建構函式
data
(int a,
int b,
int c)
:oba
(a),
obb(b)
,data
(c)~
data()
};void
test01()
1、按各物件成員在類定義中的順序(和引數列表的順序無關)依次呼叫它們的建構函式
2、先呼叫物件成員的建構函式,再呼叫本身的建構函式。 析構函式和構造函式呼叫順序相反,先構造,後析構。
c 初始化列表
與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。struct foo 初始化列表 建構函式的兩個執行階段 從概念上來講,建構函式的執行可以分成兩個階段,初始化階段和計算階段,初始化階段先於計算階段 初始化階段 所有...
C 初始化列表
與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。在c 中,struct和class的唯一區別是預設的克訪問性不同,而這裡我們不考慮訪問性的問題,所以下面的 都以struct來演示。struct foo 初始化列表 ...
C 初始化列表
與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。struct foo 初始化列表 建構函式的執行可以分成兩個階段,初始化階段和計算階段,初始化階段先於計算階段。所有類型別 class type 的成員都會在初始化階...