※ 引述《journeyman@kkcity.com.tw (㊣科學秘招~雷電閃光~)》之銘言:
> 這是constructor的簡寫嘛。
這個正式的名稱叫 member initialization list,
其實也不叫做 constructor 的簡寫,
它存在的意義並不單純是為了方便。
> 相當於
> DivideByZero(int n, int d)
> { num=n; denom=d; message="Divide by zero"; }
如果只是要幫助瞭解是可以這麼說,
不過它實際的動作不一樣,
對 message 而言,
message("Divide by zero") 這種寫法是直接呼叫它的 constructor,
而 message = "Divide by zero" 是呼叫它的 operator=() 設值。
另外對 const data member 而言,
用 member initialization list 設初值是合法的動作,
但是寫在 constructor 裡面用 assignment 設值就不行。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Chung Cheng University
Department: Computer Science and Information Engineering
Researching: Porting GCC and Implementing VLIW instruction scheduler in GCC
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰ * From:218-171-142-71.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎