C ++输入重载错误

时间:2016-01-12 07:22:31

标签: c++

istream& operator>>(istream& input, const complex& P) {
        input >> P.real >> P.imaginary;
        return input;
}

我有上面的代码,出于某种原因我收到了这个错误:

Invalid operands to binary expression ('istream' (aka 'basic_istream<char>') and 'double').

复杂&安培; P是基本上存储复数的实数部分和虚数部分的对象。因此,如果你有2 + 3i,那么P.real将返回给你2和P.imaginary将返回给你3.而实数和虚数都是双倍的。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

当重载&gt;&gt;运算符,您要为其分配输入值的变量必须是可变的,因此您需要删除&#34; const&#34;

istream& operator>>(istream& input, complex& P) {
  input >> P.real >> P.imaginary;
  return input;
}