class Fraction
{
public:
Fraction(int num, int den=1)
: m_numerator(num), m_denominator(den) {}
operator double() const {
return (double)( m_numerator / m_denominator );
}
private:
int m_numerator; // 分子
int m_denominator; // 分母
};
Fraction f(3,5);
double d = 4 + f; // 调用operator double() 将f转换为0.6
备注:
double d = 4 + f 由于最后是double类型,编译器就会去找Fraction是否存在转换为double的函数,发现之后就对其进行转换!!!