13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 109 — #147<br />

✐<br />

3.8. Creación de tipos compuestos<br />

del compilador y se puede <strong>en</strong>contrar <strong>en</strong> la docum<strong>en</strong>tación del compilador.<br />

3.7.15. Operadores explícitos<br />

Son palabras reservadas para los operadores lógicos y binarios. Los programadores<br />

de fuera de los USA sin teclados con caracteres tales como &, |, ˆ, y demás,<br />

estaban forzados a utilizar horribles trígrafos, que no sólo eran insoportable de escribir,<br />

además eran difíciles de leer. Esto se ha paliado <strong>en</strong> <strong>C++</strong> con palabras reservadas<br />

adicionales:<br />

Palabra reservada<br />

and<br />

or<br />

not<br />

not_eq<br />

bitand<br />

and_eq<br />

bitor<br />

or_eq<br />

xor<br />

xor_equ<br />

compl<br />

Significado<br />

&& ( «y» lógica)<br />

|| («o» lógica)<br />

! (negación lógica)<br />

!= (no-equival<strong>en</strong>cia lógica)<br />

& (and para bits)<br />

&= (asignación-and para bits)<br />

| (or para bits)<br />

!= (asignación-or para bits)<br />

ˆ («o» exclusiva para bits)<br />

ˆ= (asignación xor para bits)<br />

~ (complem<strong>en</strong>to binario)<br />

Cuadro 3.3: Nuevas palabras reservadas para operadores booleanos<br />

Si el compilador obedece al Estándar <strong>C++</strong>, soportará estas palabras reservadas.<br />

3.8. Creación de tipos compuestos<br />

Los tipos de datos fundam<strong>en</strong>tales y sus variantes son es<strong>en</strong>ciales, pero más bi<strong>en</strong><br />

primitivos. C y <strong>C++</strong> incorporan herrami<strong>en</strong>tas que permit<strong>en</strong> construir tipos de datos<br />

más sofisticados a partir de los tipos de datos fundam<strong>en</strong>tales. Como se verá, el<br />

más importante de estos es struct, que es el fundam<strong>en</strong>to para las class <strong>en</strong> <strong>C++</strong>.<br />

Sin embargo, la manera más simple de crear tipos más sofisticados es simplem<strong>en</strong>te<br />

poni<strong>en</strong>do un alias a otro nombre mediante typedef.<br />

3.8.1. Creación de alias usando typedef<br />

Esta palabra reservada promete más de lo que da: typedef sugiere «definición<br />

de tipo» cuando «alias» habría sido probablem<strong>en</strong>te una descripción más acertada,<br />

ya que eso es lo que hace realm<strong>en</strong>te. La sintaxis es:<br />

typedef descripción-de-tipo-exist<strong>en</strong>te nombre-alias<br />

La g<strong>en</strong>te a m<strong>en</strong>udo utiliza typedef cuando los tipos de datos se vuelv<strong>en</strong> complicados,<br />

simplem<strong>en</strong>te para evitar escribir más de lo necesario. A continuación, una<br />

forma común de utilizar typedef:<br />

typedef unsigned long ulong;<br />

Ahora si pone ulong, el compilador sabe que se está refiri<strong>en</strong>do a unsigned long.<br />

Puede p<strong>en</strong>sar que esto se puede lograr fácilm<strong>en</strong>te utilizando sustitución <strong>en</strong> el pre-<br />

109<br />

✐<br />

✐<br />

✐<br />

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

Saved successfully!

Ooh no, something went wrong!