inline const Rational operator* (const Rational& lhs, const Rational& rhs)
return Rational (lhs.numerator()*rhs.numerator(),lhs.denominator()*rhs. denominator ());
那么生成了多少个临时对象?答案是,对一般编译器,这个代价是0。编译器可以做到的优化是将lhs.numerator()*rhs.numerator(),lhs.denominator()*rhs. denominator ()的参数放到c的构造函数中去。记住const能引起这个优化,非const则不能。