#ifndef COMPLEX_H #define COMPLEX_H #include class Complex { public: // default constructor (0+i0) Complex(double = 0., double = 0.); // parte reale double re() const; // parte immaginaria double im() const; // modulo sqrt(a*a+b*b) double mag() const; // modulo quadro (a*a+b*b) double mag2() const; // ritorna coniugato (a-ib) Complex coniugate() const; // ritorna inverso 1./(a+ib) Complex inverse() const; private: double theReal; double theImag; }; // operatori binari Complex operator+(const Complex& lhs, const Complex& rhs); Complex operator-(const Complex& lhs, const Complex& rhs); Complex operator*(const Complex& lhs, const Complex& rhs); Complex operator/(const Complex& lhs, const Complex& rhs); // operatori unari // cambio segno Complex operator-(const Complex& lhs); // modulo double abs(const Complex& c) {}; // operator ostream std::ostream& operator<<(std::ostream&, const Complex& ); #endif // COMPLEX_H