代码详解:
-
成员变量:
m_numerator
和m_denominator
分别是Fraction
对象的分子和分母。
-
构造函数:
Fraction(int num, int den = 1)
是一个构造函数,它初始化m_numerator
为num
,m_denominator
为den
。默认情况下,den
的值为 1。
-
类型转换运算符:
operator double() const
定义了一个类型转换运算符,将Fraction
类型转换为double
类型。const
表示这个成员函数不会修改对象的状态。- 函数体
(double)m_numerator / m_denominator
将分子强制转换为double
类型,然后除以分母,从而得到一个double
类型的结果。
- 创建
Fraction
对象:Fraction f(3, 5);
创建了一个分子为 3,分母为 5 的Fraction
对象。
-
类型转换和运算:
double d = 4 + f;
中,由于定义了operator double()
,f
可以隐式转换为double
。- 具体来说,
f
被转换为(double)3 / 5
,即0.6
。 - 然后,进行
4 + 0.6
的运算,结果为4.6
,并将其赋值给d
。