看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 最近在學C++ 但是看到網路上有一種寫法,不知道是什麼意思 他是寫在HelloWorld.h裡面的 _a = new Array; _b = new Array; HelloWorld::HelloWorld() :_a(NULL) <= ,_b(NULL) <= { } 我箭頭指的那兩行是什麼意思?? 為什麼能寫在大括號外面? 前面又有冒後和逗點? 有想上網查 可是又不知道怎麼下關鍵字 謝謝 ※ 編輯: ckvir 來自: 1.170.12.44 (04/13 16:41)
tjjh89017:好像是跟init有關的,有點忘記@_@ 04/13 16:41
POSIX:initialization list 04/13 16:43
x000032001:就是建構子初始化的一種簡潔寫法 04/13 16:43
ckvir:喔喔 我用2樓大的關鍵字查一下 THX 04/13 16:46
diabloevagto:在建構子中 initialization list 跟在{}中用 04/13 17:22
diabloevagto:= 給值是不同的 04/13 17:22
diabloevagto:要初始化就直接用 initialization list 04/13 17:24
diabloevagto:initialization list 可以用來初始化 const 04/13 17:29
diabloevagto:http://ideone.com/0yf1d2 04/13 17:29
fireslayer:他是在allocate位置的時候直接填值進去了 04/13 18:32
fireslayer:理論上效率比較快 04/13 18:32
LPH66:倒不是效率的問題 (畢竟如果只是值的話裡外沒差) 04/14 01:24
LPH66:有差的地方是在於這個寫法才能使成員變數物件使用ctor初始化 04/14 01:24
LPH66:在裡面用 = 給值的話會變成先做了一個空物件再指定過去 04/14 01:25
BlazarArc:成員是const或者需要ctor的實體也只能用IL init 04/15 00:42