C++输入过载错误

C++ Input Overload Error

本文关键字:错误 输入 C++      更新时间:2023-10-16
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').

complex&P是一个对象,基本上存储复数的实数部分和虚数部分。所以如果你有 2 + 3i,P.real 会回到你身边 2,P.imaginary 会回到你身边 3。实数和虚数都是双倍的。

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

重载>> 运算符时,要为其分配输入值的变量必须是可变的,因此您需要删除"const">

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