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.而实数和虚数都是双倍的。
有人可以帮我解决这个问题吗?
答案 0 :(得分:4)
当重载&gt;&gt;运算符,您要为其分配输入值的变量必须是可变的,因此您需要删除&#34; const&#34;
istream& operator>>(istream& input, complex& P) {
input >> P.real >> P.imaginary;
return input;
}