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=3+f; 调用转换函数
//d=3.6
也可以使用默认构造函数法实现d=3+f,代码如下
class Fraction
{
public:
Fraction(int num,int den=1):m_numerator(num),m_denominator(den){}
private:
int m_numerator;
int m_denominator;
};
两者不能同时出现,当两者同时出现时要在构造函数前加关键字explict表示使用构造函数法把3转化为Fraction的对象