//Código página 96-97

// Operaciones básicas sobre complejos usando sobrecarga
	#include <iostream>

	struct complejo {
  		double re, im;
	};

	complejo Cplx_Crear(double re, double im) {
  		complejo Temp;

  		Temp.re= re;
  		Temp.im= im;

  		return Temp;
	}

	void Cplx_Print(const complejo & c) {
  		cout << c.re << " + " << c.im << "i";
	}

	complejo operator + (const complejo & a, const complejo & b) {
  		complejo Temp;

  		Temp.re= a.re + b.re;
  		Temp.im= a.im + b.im;

  		return Temp;
	}

	complejo operator - (const complejo & a, const complejo & b) {
  		complejo Temp;

  		Temp.re= a.re - b.re;
  		Temp.im= a.im - b.im;

  		return Temp;
	}

	void main() {
	  	complejo a, b, c, d;

	  	a= Cplx_Crear(1.0, 1.0);
	  	b= Cplx_Crear(2.0, 2.0);
	  	c= a + b;
	  	d= b + c - a;		// Así queda mucho más claro

	  	cout << endl << endl;
	  	cout << "c = ";
	  	Cplx_Print(c);
	  	cout << endl;
	  	cout << "d = ";
	  	Cplx_Print(d);
	  	cout << endl;
	}
