Вы не определили operator <<
для своего класса Complex
. Таким образом, компилятор не знает, как вывести объект класса.
Вы можете определить его, например, следующим образом
std::ostream & operator <<( std::ostream &os, const Complex &c )
{
return os << "{ " << c.GetRe() << ", " << c.GetIm() << "i }";
}
Для этого функции-члены GetRe
и GetIm
должно быть объявлено с квалификатором const
. Например,
float GetRe() const
{
return Re;
}
float GetIm() const
{
return Im;
}
После этого вы можете написать
std::cout << z1.add(z2) << '\n';
Обратите внимание, что функция-член add
также должна быть объявлена как
Complex add( const Complex &s2 ) const
{
Complex sum(Re + s2.Re, Im + s2.Im);
return sum;
}
Илипросто
Complex add( const Complex &s2 ) const
{
return { Re + s2.Re, Im + s2.Im };
}