推 nicknick0630: 一個好處是可以使用initializer list 11/23 14:06
推 dendrobium: ref type只能初始化,class如果default ctor 做的事情 11/23 15:18
→ dendrobium: 多的話也應該會有影響 11/23 15:18
推 LPH66: : 後面是使用 (特定) ctor 初始化, 寫在函式裡則是初始化完 11/23 15:30
→ LPH66: 之後再指定一個新東西過去, 語義上有些微的不同 11/23 15:31
→ LPH66: (大約就類似 int x = 5; 跟 int x; x = 5; 的差別) 11/23 15:31
→ LPH66: 那因為前者是直接初始化, 能用一些只在這裡用的語法 11/23 15:32
→ LPH66: 例如 1F 提的 initializer_list, 2F 提的 ref 初始化等 11/23 15:32
→ protoss: 好像是因為初始化跟assign值是不一樣的概念(階段)?寫在冒 11/24 00:11
→ protoss: 號後頭就在初始化階段直接給值不需要再做assign... 11/24 00:12
推 johnjohnlin: 用冒號初始化的先後順序很常常被標準陰...... 11/24 02:30
推 LPH66: 順序的問題只要記得一定是宣告順序就好 11/24 05:34
→ LPH66: 我個人會習慣寫這個冒號列表時就照宣告順序寫這樣不會亂 11/24 05:35
→ tinlans: 冒號後面 call constructor,大括號裡面就是 assignment 11/24 07:31
→ tinlans: 沒寫在冒號那邊,就多 call 一次 default constructor 11/24 07:31
→ tinlans: const data member 你也沒辦法在大括號裡面才賦值 11/24 07:32
→ Killercat: 主要是成員變數如果是const或者reference的話,這是 11/24 21:33
→ Killercat: 唯一的初始化跟賦值手段 11/24 21:34