1. 程式人生 > >c++中兩種初始化方式的區別

c++中兩種初始化方式的區別

首先我們來看一下兩種初始化:

int ival(1000);//直接初始化是將初始化式放在括號裡
int ival=1000;//複製初始化是用等號(=)
那麼這兩種方式有什麼區別呢?我們可以這樣認為,對於內建型別來說,複製初始化和直接初始化幾乎沒有差別,對於類型別來講,當建立類型別物件時,初始化的複製形式和直接形式有所不同:直接初始化直接呼叫與實參匹配的建構函式,複製初始化總是呼叫複製建構函式。複製初始化首先使用指定建構函式建立一個臨時物件,然後使用複製建構函式將那個臨時物件複製到正在建立的物件