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.
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.
Añada un destructor al Ejercicio 1 que imprima un mensaje indicado que se ha llamado.
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.
Demuestre que los destructores se invocan incluso cuando se
utiliza goto
para salir de un bucle.
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.
Modifique los ficheros Handle.h
,
Handle.cpp
, y
UseHandle.cpp
del capítulo 5 para que
usen constructores y destructores.
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.
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.
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.
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.