Implement complex number's class in C++

Здесь я пытаюсь реализовать класс для комплексных чисел, используя книги и Интернет. Вот код:

#include <iostream>
#include <ostream>
using namespace std;
class  Complex{
    private:
        float re,im;

    public:
        Complex(float x,float y){
            re=x;
            im=y;
        }

        float Re() const{
            re;
        }

        float Im() const {
            return  im;
        }

        Complex&  operator*=(const Complex& rhs){
            float t=Re();
            re = Re()*rhs.Re()-Im()*rhs.Im();

            im = t*rhs.Im()+Im()*rhs.Re();
            return *this;
        }
};

ostream& operator<<(ostream& t,const Complex& c){
    t << c.Re() << " " << c.Im(); 
    return t;
}

int main(){
    Complex s(3.45,23.12);
    return 0;
}

Он компилируется нормально, но я не могу найти способ вывести на экран действительные и мнимые части числа?

1
задан Peter Mortensen 8 September 2010 в 22:04
поделиться

2 ответа

#include <iostream>

// ...

Complex s(3.45,23.12);
std::cout << s; 

См. этот ответ ,почему я считаю использование пространства имен std; плохой идеей.

Кроме того, я полагаю, что реализация класса для комплексных чисел — это упражнение? Потому что в стандартной библиотеке он уже есть.

2
ответ дан 2 September 2019 в 21:48
поделиться

См. заголовок , который реализует std::complex... который вы можете использовать, если только вы не хотите реализовать это в качестве упражнения.

Вот ссылка на заголовочный файл GCC; все основные операции довольно просто реализованы.

Что касается печати на экране, что не так? Ваш оператор<< выглядит нормально.

0
ответ дан 2 September 2019 в 21:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: