正文
1. 問題的引入——將operator*模板化
Item 24中解釋了為什么對于所有參數(shù)的隱式類型轉(zhuǎn)換,只有非成員函數(shù)是合格的,并且使用了一個為Rational 類創(chuàng)建的operator*函數(shù)作為實例。在繼續(xù)之前建議你先回顧一下這個例子,因為這個條款的討論是對它的擴展,我們會對Item 24的實例做一些看上去無傷大雅的修改:對Rational和opeartor*同時進行模板化:
1 template<typename T> 2 class Rational { 3 public: 4 Rational(const T& numerator = 0, // see Item 20 for why params 5 6 const T& denominator = 1); // are now passed by reference 7 8 const T numerator() const; // see Item 28 for why return 9 10 11 const T denominator() const; // values are still passed by value,12 ... // Item 3 for why