关于重载>>
#include "complex0.h"
#include <iostream>
complex::complex()
{
x=0;
y=0;
}
complex::complex(double a,double b)
{
x=a;
y=b;
}
complex complex::operator+ (const complex &t)const
{
complex d;
d.x=x+t.x;
d.y=y+t.y;
return d;
}
complex complex::operator- (const complex &t)const
{
complex d;
d.x=x-t.x;
d.y=y-t.y;
return d;
}
complex complex::operator* (const complex &t)const
{
complex d;
d.x=x*t.x-y*t.y;
d.y=x*t.y+y*t.x;
return d;
}
complex operator* (const complex &t,double c)
{
complex d;
d.x=c*t.x;
d.y=c*t.y;
return d;
}
complex operator~ (const complex &t)
{
complex d;
d.x=t.x;
d.y=-t.y;
return d;
}
std::ostream & operator<<(std::ostream & os,const complex &t)
{
os<<"("<<t.x<<","<<t.y<<"i"<<")";
return os;
}
std::istream & operator>>(std::istream & is,const complex &t)
{
is>>t.x>>t.y;
return is;
}
这是我的代码,出现的错误是error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'const double' (or there is no acceptable conversion)
求指点
还有就是我把
std::istream & operator>>(std::istream & is,const complex &t)
{
is>>t.x>>t.y;
return is;
}
换成std::istream & operator>>(std::istream & is,const complex &t)
{
cout<<"real is:";
is>>t.x
cout<<"imag is:";
is>>t.y;
return is;
}
为什么会有个错误'cout' : undeclared identifier。这是怎么产生的呢,求指导