Code:
#include<iostream.h>
#include<conio.h>
class fraction
{
int num;
int den;
public:
fraction(int n,int d=1)
{
num=n;
den=d;
}
fraction operator +(fraction temp);
fraction operator -(fraction temp);
fraction operator *(fracion temp);
fraction operator /(fraction temp);
fraction min(fraction temp);
void display(fraction temp);
}
fraction fraction::operator +(fraction temp)
{
fraction hold;
if(den==temp.den)
{
hold.num=num+temp.num;
hold.den=den;
return hold;
}
else
{
hold.num=num*temp.den+temp.num*den;
hold.den=den*temp.den;
hold=min(hold);
return hold;
}
}
fraction fraction::operator -(fraction temp)
{
fraction hold(10);
if(den==temp.den)
{
hold.num=num-temp.num;
hold.den=den;
return hold;
}
else
{
hold.num=num*temp.den-temp.num*den;
hold.den=den*temp.den;
hold=min(hold);
return hold;
}
}
fraction fraction::operator *(fraction temp)
{
fraction hold(10);
hold.num=num*temp.num;
hold.den=den*temp.den;
hold=min(hold);
return hold;
}
fraction fraction::operator /(fraction temp)
{
fraction hold;
hold.num=num/temp.num;
hold.den=den/temp.den;
hold=min(hold);
return hold;
}
void fraction::display(fraction temp)
{
cout<<"\n "<<temp.num<<"/"<<temp.den<<"\n";
}
void fraction::min(fraction temp)
{
int i;
for(i=temp.den;i>=2;i--)
{
if((yemp.num%i==0)&&(temp.den%i==0))
{
temp.num=temp.num/i;
temp.den=temp.den/i;
}
}
}
int main()
{
fraction use;
cout<<"enter num of fraction 1\n";
cin>>num1;
cout<<"enter den of fracion 1\n";
cin>>den1;
cin>>num2;
cin>>den2;
fraction f1(num1,den1);
fraction f2(num2,den2);
fraction temp;
temp=f1+f2;
use.display(temp);
temp=f1-f2;
use.display(temp);
temp=f1*f2;
use.display(temp);
temp=f1/f2;
use.display(temp);
system("pause");
}
I AM GETTING AN ERROR AS "DECLARATIO N OF 'OPERATOR*' NON FUNCTION" WHILE THE OTHER OVERLOADED OPERATORS COMPILE SUCCESSFULLY.
Comment