在類的初始化過程中,成員初始化表是一種更高效的方式,從下面例子可以看出以下兩種初始化方法的效率區別
第一種:
bigclass(const memclass& a):_a(a){}
第二種:
bigclass(const memclass& a)
對於第一種 成員類不呼叫預設建構函式,直接呼叫複製建構函式
對於第二種 成員類首先呼叫預設建構函式,然後呼叫=操作符過載 來完成複製
其區別類似於
memclass a(memclass(b)); 和
memclass a;
memclass b;
a = b;
以下是完整**
初始化列表成員變數的初始化
對於以下程式 include using namespace std class base base b 0 a b int get a int get b int main 本想得到的結果是a,b都為90。但是實際結果卻是 4273046 90process returned 0 0x0 exec...
初始化的例項
說明 包含main 方法的類中包含有static類,static類先初始化 class bowl1 void f1 int marker class table1 void f2 int marker static bowl1 bowl2 new bowl1 2 class cupboard1 vo...
成員初始化列表
類物件的構造順序是這樣的 1.分配記憶體,呼叫建構函式時,隱式 顯示的初始化各資料成員 初始化階段可以是顯式的或隱式的,取決於是否存在成員初始化表。隱式初始化階段按照宣告的順序依次呼叫所有基類的預設建構函式,然後是所有成員類物件的預設建構函式。2.進入建構函式後在建構函式中執行一般計算 計算階段由建...