|
18.6.-
Defina
una clase para un tipo llamado TipoContador. Los objetos
de este tipo sirven para contar cosas, por lo que registran una
cuenta que es un número entero no negativo. Incluya un
constructor predeterminado que establezca el contador a cero
y un constructor con un argumento que establezca el contador al
valor especificado por su argumento. Incluya funciones miembro
para incrementar y decrementar el contador en uno. Aegurese de que
ninguna función miembro permita que el valor del contador
se vuelva negativo. También incluya una función miembro
que devuelva el valor actual de la cuenta y otra que envíe
la cuenta a un flujo de salida. La función miembro para efectuar
la salida tendrá un parámetro formal de tipo ostream
para el flujo de salida que recibe las salidas. Incruste su definición
de clase en un programa de prueba.
18.7.-
Defina brevemente cada uno de los
términos siguientes: herencia, herencia múltiple,
clase base y clase derivada.
18.8.-
Un tipo particular de clase es
la que se llama clase colección o una clase contenedor.
Una clase de este tipo contiene elementos de otras clases. Algunos
tipos de clase de colección son los arreglos, las pilas ,
las colas, las listas enlazadas, los árboles, las cadenas
de caracteres, los conjuntos, las bolsas, los diccionarios, las
tablas, etc. Una clase contenedor o de colección proporciona
en forma típica servicios como es insertar un elemento, borrarlo
y buscarlo, combinar dos conjuntos o colecciones (es decir, los
elementos que sean comunes a ambas), imprimir una colección,
encontrar el elemento más grande en la colección,
encontrar el elemento más pequeño en la colección,
encontrar la suma de los elementos de la colección, etc.
- Haga
una lista de todos los tipos de clase de colección que
se le puedan ocurrir (incluyendo aquellos que ya hemos mencionado).
- Arregle
estas clases de colección en una jerarquía de clases.
Quizás desee distinguir entre colecciones ordenadas y colecciones
desordenadas.
- Ponga
en práctica todas las clases que pueda, utilizando la herencia
para minimizar la cantidad de código nuevo que deba escribir
para la creación de cada una de las nuevas clases.
- Escriba
un programa manejador que pruebe cada una de las clases en su
jerarquía de herencia.
18.9.-
Compare la asignación dinámica
de memoria mediante los operadores de C++ new y delete, con
la asignación dinámica de memoria utilizando
las funciones de la biblioteca estándar de C malloc y
free.
|
|