Как предоставить оператор потока как встроенный в классе? - PullRequest
0 голосов
/ 02 ноября 2019

Мой класс:

class Complex
{
    public:

    double Re, Im;

    Complex(double re, double im)
    {
        Re = re;
        Im = im;
    }

    Complex operator +(const Complex& c)const
    {
        return Complex(Re + c.Re, Im + c.Im);
    }

    Complex operator -(const Complex& c)const
    {
        return Complex(Re - c.Re, Im - c.Im);
    }
};

inline std::ostream& operator << (std::ostream& o, const Complex& c)
{
    return o << '(' << c.Re << ", " << c.Im << ')';
}

inline std::istream& operator >> (std::istream& o, const Complex& c)
{
    return o >> c.Re >> c.Im;
}

Моя основная программа:

#include <iostream>
#include <cmath>
#include "Complex.h"

using namespace std;

int main()
{
    Complex c(1, 2);
    cout << c << endl;

    system("pause");
    return 0;
}

Журнал Visual Studio:

Visual Studio Log

Я пытался написать это в классе как оператор друга. Но это мой компилятор выдает ту же ошибку, что и в Visual Studio Log.

Как решить эту проблему?

...