04.06.2015 Views

Manual básico de Programación en C++

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

No es posible modificar el número <strong>de</strong> operandos que toma un operador. Tampoco se<br />

pue<strong>de</strong>n crear operadores nuevos; sólo se pue<strong>de</strong> hacer la homonimia <strong>de</strong> operadores<br />

exist<strong>en</strong>tes.<br />

La homonimia <strong>de</strong> operador funciona sólo con objetos <strong>de</strong> tipos <strong>de</strong>finidos por el usuario<br />

o por una combinación <strong>de</strong> un objeto <strong>de</strong> tipo <strong>de</strong>finido por el usuario y un objeto <strong>de</strong> tipo<br />

incorporado.<br />

5.3. HOMONIMIA DE OPERADORES DE INSERCION Y DE EXTRACCION DE<br />

FLUJO<br />

Se hace la homonimia <strong>de</strong> estos operadores ( ) para procesar cada tipo <strong>de</strong> datos<br />

estándar, incluy<strong>en</strong>do ca<strong>de</strong>nas y direcciones <strong>de</strong> memoria; también para ejecutar <strong>en</strong>tradas<br />

y salidas para tipos <strong>de</strong>finidos por usuario.<br />

Los operadores <strong>de</strong> <strong>en</strong>trada y <strong>de</strong> salida homónimos <strong>de</strong>b<strong>en</strong> ser <strong>de</strong>clarados como amigo,<br />

si han <strong>de</strong> t<strong>en</strong>er acceso directo a los miembros <strong>de</strong> clase no públicos.<br />

5.4. HOMONIMIA DE OPERADORES UNARIOS<br />

Se pue<strong>de</strong> hacer la homonimia <strong>de</strong> un operador unario para una clase como función<br />

miembro no estática sin argum<strong>en</strong>tos, o como función no miembro con un argum<strong>en</strong>to;<br />

dicho argum<strong>en</strong>to <strong>de</strong>be ser un objeto <strong>de</strong> la clase o una refer<strong>en</strong>cia a un objeto <strong>de</strong> la clase.<br />

5.5. HOMONIMIA DE OPERADORES BINARIOS<br />

Se pue<strong>de</strong> hacer la homonimia <strong>de</strong> un operador binario como función miembro no<br />

estática con un argum<strong>en</strong>to o como función no miembro con dos argum<strong>en</strong>tos ( uno <strong>de</strong><br />

dichos argum<strong>en</strong>tos <strong>de</strong>bi<strong>en</strong>do ser un objeto <strong>de</strong> clase o una refer<strong>en</strong>cia a un objeto <strong>de</strong><br />

clase).<br />

Así, por ejemplo, podríamos <strong>de</strong>finir un operador ''+'' <strong>de</strong> la sigui<strong>en</strong>te forma:<br />

Class Complejo<br />

{<br />

...<br />

public :<br />

...<br />

Complejo operator + ( const Complejo &op)<br />

{<br />

double real = _real + op._real,<br />

imag = _imag + op._imag;<br />

};<br />

}<br />

...<br />

return<br />

(Complejo ( real, imag));

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!