看板 C_and_CPP 關於我們 聯絡資訊
有看到有人說這樣效率比較好 但我自己測試來看是看不出差異(可能是我測試方式太簡單) 就我個人來說我是覺得寫在函式裡較為美觀 但是很多網路上的無論是simple code還是教學,在初始化時是比較常看到單冒號的 請問是真的效率上差很多,還是單純風格差異而已? ----- Sent from JPTT on my Asus ASUS_I01WD. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.5.27 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1606108690.A.974.html
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