// Programación en C++ para Ingenieros, Ed. Thomson Paraninfo, 2006 // Capítulo 8: Diseño descendente // Fichero complejo.h // Declaración de la clase complejo // Por si este fichero estuviera definido // lo controlamos con estas directivas #ifndef MI_COMPLEJO_H #define MI_COMPLEJO_H #include <iostream> using namespace std; class Complejo{ private: double real,imag; public: Complejo(); // Constructor general Complejo(double, double); // Constructor de copia Complejo(const Complejo&); // Método para modificar la parte real void setReal(double); // Método para modificar la parte imaginaria void setImag(double); // Método para devolver la parte real double getReal(); // Método para devolver la parte imaginaria double getImag(); // Método para el cálculo del conjugado de un //complejo Complejo conjugado(); // Métodos para la representación polar: // Cálculo del módulo de un complejo double modulo(); // Método para el cálculo del argumento de // un complejo double angulo(); // Método para el cálculo del inverso de un complejo Complejo inverso(); // Operadores miembro sobrecargados Complejo operator- (); Complejo operator+ (const Complejo& c); Complejo operator- (const Complejo& c); Complejo operator* (const Complejo& c); Complejo operator/ (const Complejo& c); // Operador miembro de asignación sobrecargado Complejo& operator= (const Complejo& c); // Operador friend de test de igualdad sobrecargado friend bool operator== (const Complejo& c1,const Complejo& c2); // Operador friend de test de desigualdad sobrecargado friend bool operator!= (const Complejo& c1,const Complejo& c2); // Operador friend << sobrecargado friend ostream& operator<< (ostream& co, const Complejo& c); // Operador friend >> sobrecargado friend istream& operator>> (istream& ci, Complejo& c); }; #endif