2016-04-06 3 views
0

Мне было предложено использовать istream & как параметр для функции ввода для моего класса Complex. Используется в комплексных числах. Однако мне трудно найти хорошее объяснение того, как использовать istream.Использование istream & как параметр функции

Я хочу, чтобы быть способным к реальным переменным и переменным.

class Complex 
{ 
    public: 
     void input(std::istream& in); 
     void output(std::ostream& out); 
     double getReal(); 
     double getImag(); 
     void setReal(double r); 
     void setImag(double i); 
    private: 
     double real; 
     double imag; 
}; 

void Complex::input(istream& in) 
{ 
    in >> real; 
    in >> imag; 
} 
+0

Какое у вас задание? Это также полностью зависит от того, что такое 'istream'. (например, поток ввода файла и т. д.) –

+0

Вы говорите, что хотите использовать 'cin' для своего класса. После создания экземпляра 'Complex', вы должны вызвать' my_complex.input (std :: cin); '. –

ответ

0

Подпись для

void input(std::istream& in); 
    void output(std::ostream& out); 

должна позволять цепи результирующего состояния потока:

std::istream& input(std::istream& in); 
    std::ostream& output(std::ostream& out) const; 

Таким образом, они могут быть использованы в глобальных перегрузках для вашего класса:

std::istream operator>>(std::istream& is, Complex& c) { 
    return c.input(is); 
} 

std::ostream operator<<(std::ostream& os, const Complex& c) { 
    return c.output(os); 
} 
Смежные вопросы