读书人

怎么消除这二义性?

发布时间: 2013-03-19 17:22:05 作者: rapoo

如何消除这二义性????

#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;

}


--------------------Configuration: 第三方 - Win32 Debug--------------------
Compiling...
第三方.cpp
E:\vc软件\VC6CN\MyProjects\但是分\第三方.cpp(88) : error C2593: 'operator <<' is ambiguous
E:\vc软件\VC6CN\MyProjects\但是分\第三方.cpp(89) : error C2593: 'operator <<' is ambiguous
E:\vc软件\VC6CN\MyProjects\但是分\第三方.cpp(90) : error C2593: 'operator <<' is ambiguous
E:\vc软件\VC6CN\MyProjects\但是分\第三方.cpp(91) : error C2593: 'operator <<' is ambiguous
E:\vc软件\VC6CN\MyProjects\但是分\第三方.cpp(92) : error C2593: 'operator <<' is ambiguous
执行 cl.exe 时出错.

第三方.obj - 1 error(s), 0 warning(s)

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

读书人网 >C++

热点推荐