You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>de</strong> struct y union. Por tanto se pue<strong>de</strong> <strong>de</strong>clarar una variable <strong>de</strong> enumeración, estructura o union sin<br />
utilizar las palabras enum, strcut o union.<br />
C <strong>de</strong>fine el tipo <strong>de</strong> enum <strong>de</strong> tipo int. En <strong>C++</strong>, sin embargo, cada tipo enumerado es su propio tipo<br />
in<strong>de</strong>pendiente. Esto significa que <strong>C++</strong> no permite que un valor int se convierta automáticamente a un<br />
valor enum. Sin embargo, un valor enumerado se pue<strong>de</strong> utilizar en lugar <strong>de</strong> un int.<br />
Ejemplo:<br />
enum lugar{primero,segundo,tercero};<br />
lugar pepe=primero; //correcto<br />
int vencedor=pepe; //correcto<br />
lugar juan=1; //incorrecto<br />
La última sentencia <strong>de</strong> asignación es aceptable en C pero no en <strong>C++</strong>, ya que 1 no es un valor <strong>de</strong>finido<br />
en lugar.<br />
- Tipos referencia. Las referencias son como alias. Son alternativas al nombre <strong>de</strong> un objeto. Se <strong>de</strong>fine<br />
un tipo referencia haciéndole prece<strong>de</strong>r por el operador <strong>de</strong> dirección &. Un objeto referencia, igual que<br />
una constante <strong>de</strong>be ser inicializado.<br />
int a=50;<br />
int &refa=a; //correcto<br />
int &ref2a; //incorrecto: no inicializado<br />
Todas las operaciones efectuadas sobre la referencia se realizan sobre el propio objeto:<br />
refa+=5; equivale a sumar 5 a a, que vale ahora 55<br />
int *p=&refa; inicializa p con la dirección <strong>de</strong> a<br />
Operadores especiales <strong>de</strong> <strong>C++</strong><br />
:: Resolución <strong>de</strong> ámbito (o alcance)<br />
.* Indirección (eliminación <strong>de</strong> referencia directa) un puntero a un miembro <strong>de</strong> una clase<br />
->* Indirección (eliminación <strong>de</strong> referencia directa) un puntero a un miembro <strong>de</strong> una clase<br />
new Asigna (inicializa) almacenamiento dinámico<br />
<strong>de</strong>lete Libera almacenamiento asignado por new<br />
Declaraciones y <strong>de</strong>finiciones<br />
Los términos <strong>de</strong>claración y <strong>de</strong>finición tienen un significado distinto aunque con frecuencia se<br />
intercambian.<br />
Las <strong>de</strong>claraciones se utilizan para introducir un nombre al compilador, pero no se asigna memoria. Las<br />
<strong>de</strong>finiciones asignan memoria.<br />
En <strong>C++</strong> cuando se <strong>de</strong>clara una estructura se proporciona su nombre al compilador pero no se asigna<br />
memoria. Cuando se crea una instancia <strong>de</strong> la estructura es cuando se asigna memoria.<br />
En C todas las <strong>de</strong>claraciones <strong>de</strong>ntro <strong>de</strong> un programa o función <strong>de</strong>ben hacerse al principio <strong>de</strong>l programa<br />
o función; en otras palabras las <strong>de</strong>claraciones <strong>de</strong>ntro <strong>de</strong> un ámbito dado <strong>de</strong>ben ocurrir al principio <strong>de</strong><br />
ese ámbito.<br />
Todas las <strong>de</strong>claraciones globales <strong>de</strong>ben aparecer antes <strong>de</strong> cualquier función y cualquier <strong>de</strong>claración<br />
local <strong>de</strong>be hacerse antes <strong>de</strong> cualquier sentencia ejecutable.