如何消除这二义性????
#include<iostream>
#include<cmath>
using namespace std;
class fenshu
{
friend ostream &operator << (ostream &,const fenshu &);
friend istream &operator >> (istream &, fenshu &);
public:
fenshu(int =1,int =1);
~fenshu(){}/////////////////////
fenshu operator =(const fenshu);
fenshu operator +( fenshu);
fenshu operator -( fenshu);
fenshu operator *( fenshu);
fenshu operator /( fenshu);
int operator ==(fenshu) const;
public:
int zi,mu;
};
fenshu fenshu::operator =(const fenshu f)
{
if(&f!=this)
{
zi=f.zi;mu=f.mu;
}
else cout<<"自我赋值错";
return *this;
}
fenshu fenshu::operator +( fenshu f)
{
fenshu re;
re.zi=zi * f.mu + f.zi * mu;
re.mu=mu*f.mu;
return re;
}
fenshu fenshu::operator -( fenshu f)
{
fenshu re;
re.zi=zi * f.mu - f.zi * mu;
re.mu=mu*f.mu;
return re;
}
fenshu fenshu::operator *( fenshu f)
{
fenshu re;
re.zi=zi * f.zi;
re.mu=mu*f.mu;
return re;
}
fenshu fenshu::operator /( fenshu f)
{
fenshu re;
re.zi=zi * f.mu;
re.mu=mu * f.zi;
return re;
}
int fenshu::operator == (fenshu f)const
{
if(zi==f.zi && mu==f.mu)return 1;
else return 0;
}
ostream & operator << (ostream & output,const fenshu &f)
{
output<<f.zi<<"/"<<f.mu<<endl;
return output;
}
istream & operator >> (istream & input,const fenshu &f)
{
cout<<"输入两个数 要隔开";
input>>f.zi;
input>>f.mu;
return input;
}
void main()
{
fenshu a(2,6),b, c;
cin>>b;
c=a;
cout<< c <<endl;
cout<< (a+b) <<endl;
cout<< a-b <<endl;
cout<< a*b <<endl;
cout<< a/b <<endl;//二义性??????
cout<<(a==b)<<endl;
cout<<(a==c)<<endl;
}
input output iostream
[解决办法]
http://www.microsoft.com/visualstudio/chs/products/visual-studio-express-for-windows-desktop
http://www.microsoft.com/visualstudio/chs/products/visual-studio-express-for-windows-desktop