En esta tarea se explorará la inetracciones entre constructores,
operador asignación, destructores, y herencia.
Desarrolle cada uno de los siguientes pasos:
1) Baje los archivos de la tarea desde aqui .
2) Los archivos sets.h, sets.cpp, and testsets.cpp conforman el primer programa. Compílelo (Ej., g++ -g -o test1 sets.cpp testsets.cpp) y córralo.
Luego recompilelo con la variable de compilación TREE. (Ej., g++ -g -o test2 -DTREE sets.cpp testsets.cpp) Corra esta versión.
3) ¿Por qué la versión TREE no funciona?
4) Modifique los archivos necesarios (sets.h, sets.cpp posiblemente) de tal manera que la versión TREE funciones correctamente.
5) El ofrecer diferentes implementaciones de una clase o tipo de dato
abstracto (ADT) es una situación común en bibliotecas. Una
forma de hacerlo es usar una clase base única para proveer la parte
común de la interface del ADT, y subclases en la que cada una se
provee una diferente estructura de dato para su implementación.
sets2.h y sets2.cpp muestran esta estrategia.
En teoría, uno puede escribir código ara
manipular el ADT y éste debería operar igualmente bien en
todas las estructuras de datos. testset2.cpp contiene ejemplos de tales
códigos.
Trasfiera sus cambios del paso 4 en sets2.* Compile y
corra el programa basado en herencia.
6) ¿Por qué este nuevo programa no funciona correctamente?
7) Modifique testset2.cpp para que funcione correctamente.
------------------------
Ponga lo siguiente en su directorio a enviar con su solución:
1) Su modificada versión de sets.*, sets2.*, y testset*.cpp
No incluya ejecutables. No cambie los nombres de los archvios.
2) Un archivo RESPUESTAS.TXT con sus respuestas a la pregunta
del paso 3 y 6.
3) En esta tarea la calificación de sus respuestas corresponde
a la documentación. No entregue otro archivo de documentación
a parte del de respuestas.