[ create a new paste ] login | about

Link: http://codepad.org/3hUhbRtJ    [ raw code | output | fork ]

salvador@conclase.net - C++, pasted on Nov 10:
// Sobrecarga de operadores
// (C) 2009 Con Clase
// Salvador Pozo

#include <iostream>
using namespace std;
 
struct complejo { 
   float a,b; 
};
 
/* Prototipo del operador + para complejos */
complejo operator +(complejo a, complejo b);
/* Prototipo del operador ++ prefijo para complejos */
complejo operator ++(complejo &a);
/* Prototipo del operador ++ sufijo para complejos */
complejo operator ++(complejo &a, int);

void Mostrar(complejo);
 
int main() { 
   complejo x = {10,32}; 
   complejo y = {21,12};
 
   complejo z; 
   /* Uso del operador sobrecargado + con complejos */
   z = x + y; 
   cout << "z = (x + y) = ";
   Mostrar(z);
   cout << "++z = ";
   Mostrar(++z);
   cout << "z++ = ";
   Mostrar(z++);
   cout << "z = ";
   Mostrar(z);
   
   return 0; 
}
 
/* Definición del operador + para complejos */
complejo operator +(complejo a, complejo b)  { 
   complejo temp = {a.a+b.a, a.b+b.b}; 
   return temp; 
}

/* Definición del operador ++ prefijo para complejos */
complejo operator ++(complejo &c)  { 
   c.a++; 
   return c; 
}

/* Definición del operador ++ sufijo para complejos */
complejo operator ++(complejo &c, int)  { 
   complejo temp = {c.a, c.b};
   c.a++; 
   return temp; 
}

void Mostrar(complejo c) {
   cout << "(" << c.a << "," << c.b << ")" << endl; 
}


Output:
1
2
3
4
z = (x + y) = (31,44)
++z = (32,44)
z++ = (32,44)
z = (33,44)


Create a new paste based on this one


Comments: