关于重载istream
  • 板块灌水区
  • 楼主YJY0807qwq
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/12/25 22:27
  • 上次更新2023/10/28 13:36:50
查看原帖
关于重载istream
409265
YJY0807qwq楼主2021/12/25 22:27

想重载一个读入结构体的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>&&'

2021/12/25 22:27
加载中...