14.5 建構子(constructor)
目前的 Fraction 有一個小尷尬:在 main 裡宣告 Fraction f; 之後、read() 之前,p、q 是沒人保證的垃圾值(上冊第二單元的老規則:沒初始化的變數,內容不明)。兩個願望自然浮現:
Fraction f;——希望它自動有個合理的預設值,例如 0(也就是 \frac{0}{1})。Fraction f(3, 5);——宣告的當下就把值帶進去,最好連約分都自動做掉。
實現願望的機制叫建構子(constructor):一種在「變數誕生的瞬間」自動執行的特殊成員函式。語法兩條鐵律: