Академический Документы
Профессиональный Документы
Культура Документы
INGENIERÍA INDUSTRIAL
“COMPUTACIÓN”
GRUPO: # 4
TEMA
CARLOS TEANGA
ANDRÉS NARVÁEZ
BAYRON GREFA
07-07-2016
Al igual que sucede con las funciones, en C++ los operadores también pueden
sobrecargarse.
Sintaxis:
Prototipo:
Definición:
Operadores unitarios
^
También es posible sobrecargar los operadores de preincremento, postincremento,
predecremento y postdecremento.
De hecho, es posible sobrecargar otros operadores de forma unitaria, como el +, -, * o &
de forma prefija.
En estos casos, el operador sólo afecta a un operando. Veamos primero los de prefijos:
Forma prefija
complejo a, b, c;
...
c = ++a + b;
// Sobrecarga de operadores
// (C) 2009 Con Clase
// Salvador Pozo
#include <iostream>
using namespace <i>std</i>;
struct complejo {
float a,b;
};
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;
}
void Mostrar(complejo c) {
cout << "(" << c.a << "," << c.b << ")" << endl;
}
Operador de asignación
^
Consideremos un caso hipotético.
Tenemos una estructura donde uno de los miembros es un puntero que apuntará a una
zona de memoria obtenida dinámicamente, y trabajaremos con esos objetos en nuestro
programa:
#include <iostream>
using namespace std;
struct tipo {
int *mem;
};
int main() {
tipo a, b;
b = a; // (1)
b.mem[2] = 1; // (2)
delete[] a.mem;
// delete[] b.mem; // (3)
return 0;
}
// Asignación de arrays
// (C) 2009 Con Clase
// Salvador Pozo
#include <iostream>
using namespace std;
struct tipo {
int *mem;
};
asignar(b, a);
b.mem[2] = 1;
delete[] a.mem;
delete[] b.mem;
return 0;
}