#include <iostream>
class complex {
double re, im;
public:
// Конструктор для инициализации (по умолчанию нулями)
complex(double r = 0.0, double i = 0.0) : re(r), im(i) {}
// Методы доступа, возвращающие ссылки (позволяют присваивание)
double & real() { return re; }
double & imag() { return im; }
// Константные методы доступа (для удобства чтения данных)
double real() const { return re; }
double imag() const { return im; }
};
// Перегрузка оператора сложения
complex operator + (complex a, complex b) {
complex result;
// Используем методы доступа для записи результата
result.real() = a.real() + b.real();
result.imag() = a.imag() + b.imag();
return result;
}
int main() {
// Пример использования
complex c1(3.5, 2.5);
complex c2(1.5, 4.5);
complex sum = c1 + c2;
std::cout << "Result: " << sum.real() << " + " << sum.imag() << "i" << std::endl;
return 0;
}