17.05.2013 Views

Manual de lenguaje C++

Manual de lenguaje C++

Manual de lenguaje C++

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Este operador se utilizará también en la gestión <strong>de</strong> clases.<br />

Estructuras y uniones<br />

Los tipos <strong>de</strong>finidos por el usuario se <strong>de</strong>finen como estructuras, uniones, enumeraciones o clases. Las<br />

estructuras y uniones son tipos <strong>de</strong> clase (clase, es el tipo <strong>de</strong> dato fundamental en la programación<br />

orientada a objetos).<br />

El tipo struct permite agregar componentes <strong>de</strong> diferentes tipos y con un solo nombre. Las estructuras<br />

en <strong>C++</strong> se <strong>de</strong>claran como en C:<br />

struct datos<br />

{<br />

int num;<br />

char nombre[20];<br />

};<br />

El nuevo tipo <strong>de</strong> dato <strong>de</strong>finido pue<strong>de</strong> tener instancias que se <strong>de</strong>claran:datos persona; //<strong>de</strong>claración C+<br />

+struct datos persona; // <strong>de</strong>claración C<br />

En <strong>C++</strong> <strong>de</strong>be evitarse el uso <strong>de</strong> type<strong>de</strong>f.<br />

El mismo convenio aplicado a las estructuras, se aplica a las uniones.<br />

Un tipo especial <strong>de</strong> unión se ha incorporado a <strong>C++</strong> :unión anónima. Una unión anónima <strong>de</strong>clara<br />

simplemente un conjunto <strong>de</strong> elementos que comparten la misma dirección <strong>de</strong> memoria; no tiene<br />

nombre i<strong>de</strong>ntificador y se pue<strong>de</strong> acce<strong>de</strong>r directamente a los elementos por su nombre.<br />

Un ejemplo:<br />

union<br />

{<br />

int i;<br />

float f;<br />

};<br />

Tanto i como f comparten la misma posición <strong>de</strong> memoria. A los miembros <strong>de</strong> esta unión se pue<strong>de</strong><br />

acce<strong>de</strong>r directamente en el ámbito en que está <strong>de</strong>clarada. Por tanto, en el ejemplo, la sentencia i=3<br />

sería aceptable.<br />

Las uniones anónimas son interesantes en el caso en que se <strong>de</strong>fina una unión en el interior <strong>de</strong> una<br />

estructura:<br />

struct registro<br />

{<br />

union<br />

{<br />

int num;<br />

float salario;<br />

};<br />

char *telefono;<br />

};<br />

registro empleado;<br />

Para acce<strong>de</strong>r al nombre <strong>de</strong> un campo <strong>de</strong>ntro <strong>de</strong> esta estructura:<br />

empleado.sueldo;

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

Saved successfully!

Ooh no, something went wrong!