2016-01-12 1 views
1
istream& operator>>(istream& input, const complex& P) { 
     input >> P.real >> P.imaginary; 
     return input; 
} 

У меня есть код, указанные выше, и по какой-то причине, я получаю эту ошибку:C++ Ошибка ввода перегрузка

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

комплекса & P является объектом, который в основном хранит реальное число части и мнимую часть комплексное число. Итак, если у вас есть 2 + 3i, P.real вернется к вам обратно 2, а P.imaginary вернется к вам назад. 3. И реальные и мнимые числа оба удваиваются.

Может кто-нибудь помочь мне понять это?

+2

Удалить сопзЬ из сопзЬ комплекса. – ZDF

ответ

4

При перегрузке >> оператора, переменный, к которой вы хотите назначить входные значения должно быть изменяемыми, так что вам нужно удалить «сопзИ»

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

да только что понял, что ха-ха ... небольшие ошибки ... Спасибо за помощь! – LP496

Смежные вопросы