正文
1. 問(wèn)題的引入——將operator*模板化
Item 24中解釋了為什么對(duì)于所有參數(shù)的隱式類(lèi)型轉(zhuǎn)換,只有非成員函數(shù)是合格的,并且使用了一個(gè)為Rational 類(lèi)創(chuàng)建的operator*函數(shù)作為實(shí)例。在繼續(xù)之前建議你先回顧一下這個(gè)例子,因?yàn)檫@個(gè)條款的討論是對(duì)它的擴(kuò)展,我們會(huì)對(duì)Item 24的實(shí)例做一些看上去無(wú)傷大雅的修改:對(duì)Rational和opeartor*同時(shí)進(jìn)行模板化:
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