正文

回到顶部

1. 问题的引入——将operator*模板化

Item 24中解释了为什么对于所有参数的隐式类型转换,只有非成员函数是合格的,并且使用了一个为Rational 类创建的operator*函数作为实例。在继续之前建议你先回顾一下这个例子,因为这个条款的讨论是对它的扩展,我们会对Item 24的实例做一些看上去无伤大雅的修改:对Rational和opeartor*同时进行模板化:

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

 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