The essential codes are here:
class rational
{public:
rational():a(0),b(1){}
rational(double i):a(i),b(100){}
rational(int i,int j):a(i),b(j){}
void print(){cout<<a<<"/"<<b<<endl;}
operator double(){return(static_cast<double>(a)/
private:
double a,b;
};
int greater(int i,int j)
{return(i>j?i:j);}
double greater(double x,double y)
{return(x>y?x:y);}
rational greater(rational w,rational z)
{return(w>z?w:z);}
int main()
{int i=12;
double y=1.56;
rational w(10),z(7.5);
cout<<greater(w,z); //right
cout<<greater(w,y); //right
cout<<greater(y,w); //error:3 overloads have similar convertions.
cout<<greater(i,w); //error:3 overloads have similar convertions.
}
This post has been edited by smilewithme: 31 May 2005 - 08:03 PM

Help

Back to top








