想重载一个读入结构体的istream>>运算符,但是CE了 代码(ostream部分没有问题):
struct Complex
{
double real, imaginary;
Complex(const double& treal, const double& timaginary): real(treal), imaginary(timaginary)
{
}
friend istream& operator>>(istream &is, const Complex &z);
friend ostream& operator<<(ostream &os, const Complex z);
inline void add(Complex o)
{
this->real += o.real;
this->imaginary += o.imaginary;
}
};
istream& operator>>(istream &is, const Complex &z)
{
is>>z.real>>z.imaginary;
return is;
}
ostream& operator<<(ostream &os, const Complex z)
{
os<<z.real<<' '<<z.imaginary;
return os;
}
错误信息:
cannot bind 'std::istream {aka std::basic_istream<char>}' lvalue to 'std::basic_istream<char>&&'