/
haseew
/
Lab_4
Обзор
Документация
Войти
/
haseew
/
Lab_4
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Complex.cpp
92 строки
2 KB
Egorchik
Lab_4
23 мар 2026, 14:20
23 мар 2026, 14:20
065d234
Код
Авторство
О чём код?
#include "Complex.h" #include <cmath> // конструктор по умолчанию (обнуляет поля) Complex::Complex() : re(0.0), im(0.0) {} // конструктор с параметрами Complex::Complex(double x, double y) : re(x), im(y) {} // конструктор копирования Complex::Complex(const Complex &z) : re(z.re), im(z.im) {} // оператор присваивания Complex& Complex::operator=(const Complex &z) { if (this != &z) { re = z.re; im = z.im; } return *this; } // вычисление модуля числа double Complex::abs() const { return std::sqrt(re * re + im * im); } // сложение Complex Complex::operator+(const Complex &z) const { return Complex(re + z.re, im + z.im); } // вычитание Complex Complex::operator-(const Complex &z) const { return Complex(re - z.re, im - z.im); } // умножение без потери данных Complex Complex::operator*(const Complex &z) const { return Complex(re * z.re - im * z.im, re * z.im + im * z.re); } // деление Complex Complex::operator/(const Complex &z) const { double denom = z.re * z.re + z.im * z.im; return Complex((re * z.re + im * z.im) / denom, (im * z.re - re * z.im) / denom); } // префиксный инкремент (++z) Complex& Complex::operator++() { re += 1.0; im += 1.0; return *this; } // постфиксный инкремент (z++) Complex Complex::operator++(int) { Complex temp = *this; ++(*this); return temp; } // префиксный декремент (--z) Complex& Complex::operator--() { re -= 1.0; im -= 1.0; return *this; } // постфиксный декремент (z--) Complex Complex::operator--(int) { Complex temp = *this; --(*this); return temp; } // логические операции сравнения по модулю bool Complex::operator==(const Complex &z) const { return this->abs() == z.abs(); } bool Complex::operator!=(const Complex &z) const { return !(*this == z); } bool Complex::operator<(const Complex &z) const { return this->abs() < z.abs(); } bool Complex::operator>(const Complex &z) const { return this->abs() > z.abs(); } // вывод в формате: x + y* i std::ostream& operator<<(std::ostream &os, const Complex &z) { os << z.re << " + " << z.im << "* i"; return os; } // ввод двух чисел std::istream& operator>>(std::istream &is, Complex &z) { is >> z.re >> z.im; return is; }