Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 247 — #285<br />
✐<br />
8.6. Resum<strong>en</strong><br />
los métodos y para los objetos <strong>en</strong> sí mismos. Sólo puede llamar a métodos volatile<br />
desde objetos volatile.<br />
La razón por la que isr() no se puede usar como una rutina de servicio de interrupción<br />
(ISR) es que <strong>en</strong> un método, la dirección del objeto actual (this) debe pasarse<br />
secretam<strong>en</strong>te, y una ISR no requiere argum<strong>en</strong>tos. Para resolver este problema<br />
se puede hacer que el método isr() sea un método de clase (static), un asunto<br />
que se trata <strong>en</strong> el [FIXME:capitulo 10].<br />
La sintaxis de volatile es idéntica a la de const, así que por eso se suel<strong>en</strong><br />
tratar juntos. Cuando se usan combinados se conoc<strong>en</strong> como cuantificador c-v (constvolatile).<br />
8.6. Resum<strong>en</strong><br />
La palabra const permite la posibilidad de definir objetos, argum<strong>en</strong>tos de función,<br />
valores de retorno y métodos como constantes y elimina el uso del preprocesador<br />
para la sustitución de valores sin perder ninguna de sus v<strong>en</strong>tajas. Todo ello ofrece<br />
una forma adicional de comprobación de tipos y seguridad <strong>en</strong> la programación. El<br />
uso de la llamada «constancia exacta» (const correctness) es decir, el uso de const <strong>en</strong><br />
todo lugar donde sea posible, puede ser un salvavidas para muchos proyectos.<br />
Aunque ignore a const y continue usando el estilo tradicional de C, const existe<br />
para ayudarle. El [FIXME:capitulo 11] utiliza las refer<strong>en</strong>cias ext<strong>en</strong>sam<strong>en</strong>te, y se<br />
verá más sobre la importancia del uso de const <strong>en</strong> los argum<strong>en</strong>tos de funciones.<br />
8.7. Ejercicios<br />
Las soluciones a los ejercicios se pued<strong>en</strong> <strong>en</strong>contrar <strong>en</strong> el docum<strong>en</strong>to electrónico<br />
titulado «The Thinking in <strong>C++</strong> Annotated Solution Guide», disponible por poco<br />
dinero <strong>en</strong> www.BruceEckel.com.<br />
1. Cree 3 valores <strong>en</strong>teros constantes, después súmelos todos para producir un valor<br />
que determine el tamaño <strong>en</strong> la definición de un vector. Int<strong>en</strong>te compilar el<br />
mismo código <strong>en</strong> C y vea qué sucede (g<strong>en</strong>eralm<strong>en</strong>te se puede forzar al compilador<br />
de <strong>C++</strong> para que funcione como un compilador de C utilizando alguna<br />
opción de linea de comandos).<br />
2. Probar que los compiladores de C y <strong>C++</strong> realm<strong>en</strong>te tratan las constantes de<br />
modo difer<strong>en</strong>te. Cree una constante global y úsela <strong>en</strong> una expresión global<br />
constante, compile dicho código <strong>en</strong> C y <strong>C++</strong>.<br />
3. Cree definiciones constantes para todos los tipos del l<strong>en</strong>guaje y sus variantes.<br />
Úselos <strong>en</strong> expresiones con otras constantes para hacer definiciones de constantes<br />
nuevas. Compruebe que compilan correctam<strong>en</strong>te.<br />
4. Cree una definición de constante <strong>en</strong> un archivo de cabecera, incluya dicho archivo<br />
<strong>en</strong> dos archivos .cpp, compílelos y <strong>en</strong>lácelos con el compilador de <strong>C++</strong>.<br />
No deberían ocurrir errores. Ahora int<strong>en</strong>te el mismo experim<strong>en</strong>to con el compilador<br />
de C.<br />
5. Cree una constante cuyo valor se determine <strong>en</strong> tiempo de ejecución ley<strong>en</strong>do<br />
la hora <strong>en</strong> que comi<strong>en</strong>za la ejecución del programa (puede usar ).<br />
Después, <strong>en</strong> el programa, int<strong>en</strong>te leer un segundo valor de hora, almac<strong>en</strong>arlo<br />
<strong>en</strong> la constante y vea qué sucede.<br />
247<br />
✐<br />
✐<br />
✐<br />
✐