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的函數,發現之後就對其進行轉換!!!