conversion function
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:
double m_numerator;
double m_denominator;
};
Fraction f(3,5);
double d=4+f;
non-explict-one-argument ctor
class Fraction
{
public:
Fraction(int num,int den=1)
:m_numerator(num),m_denominator(den)
{}
Fraction operator+(const Fraction& f){
return Fraction(......);
}
private:
double m_numerator;
double m_denominator;
};
Fraction f(3,5);
Fraction d2=f+4;
explict-one-argument ctor
class Fraction
{
public:
explict Fraction(int num,int den=1)
:m_numerator(num),m_denominator(den)
{}
operator double() const {
return (double)(m_numerator / m_denominator)
}
Fraction operator+(const Fraction& f){
return Fraction(......);
}
private:
double m_numerator;
double m_denominator;
};