6.9. Ejercicios

Las soluciones a los ejercicios se pueden encontrar en el documento electrónico titulado «The Thinking in C++ Annotated Solution Guide», disponible por poco dinero en www.BruceEckel.com.

  1. Escriba una clase simple llamada Simple con un constructor que imprima algo indicando que se ha invocado. En main() creae un objeto de esa clase.

  2. Añada un destructor al Ejercicio 1 que imprima un mensaje indicado que se ha llamado.

  3. Modifique el Ejercicio 2 de modo que la clase contenga un miembro int. Modifique el constructor para que tome un argumento int que se almacene en el atributo. Tanto el constructor como el destructor deberán imprimir el valor del entero como parte se su mensaje, de modo que se pueda ver cómo se crean y destruyen los objetos.

  4. Demuestre que los destructores se invocan incluso cuando se utiliza goto para salir de un bucle.

  5. Escriba dos bucles for que impriman los valores de 0 a 10. En el primero, defina el contador del bucle antes del bucle, y en el segundo, defina el contador en la expresión de control del for. En la segunda parte del ejercicio, modifique el identificador del segundo bucle para que tenga el mismo nombre del el contador del primero y vea que hace el compilador.

  6. Modifique los ficheros Handle.h, Handle.cpp, y UseHandle.cpp del capítulo 5 para que usen constructores y destructores.

  7. Use inicialización de agregados para crear un array de double en el que se indique el tamaño del array pero no se den suficientes elementos. Imprima el array usando sizeof para determinar el tamaño del array. Ahora cree un array de double usando inicialización de agregados y conteo automático. Imprima el array.

  8. Utilice inicialización de agregados para crear un array de objetos string. Cree una Stack para guardar esas cadenas y recorra el array, apilando cada cadena en la pila. Finalmente, extraiga las cadenas de la pila e imprima cada una de ellas.

  9. Demuestre el conteo automático e inicialización de agregados con un array de objetos de la clase creada en el Ejercicio 3. Añada un método a la clase que imprima un mensaje. Calcule el tamaño del array y recórralo, llamando al nuevo método.

  10. Cree una clase sin ningún constructor, y demuestre que puede crear objetos con el constructor por defecto. Ahora cree un constructor explícito (que tenga un argumento) para la clase, e intente compilar de nuevo. Explique lo que ocurre.