Diseño y Programación Orientados a Objetos
1er. Sem 2005
Tarea 4: Nuestra clase Conjuntos en C++

En esta tarea usted va a crear una clase que nos permitirá representar conjuntos. Además deberá hacer uso de objetos creados en forma dinámica con el fin de observar la necesidad de contar con coonstructor copia, destructor, y  sobrecarga del operador asignación.

La tarea será revisada desde consola; es decir se requiere que usted cree un archivo Makefile para que el ayudante compile su trabajo sólo ejecutando la sentencia
$ make
Para ejecutar su programa el ayudante ejecutará
$ make run

La tarea se puede dividir en dos partes: la descripción e implementación de la clase Conjunto y un programa de prueba que verificará si su lace efectúa bien las operaciones que se indican más abajo.

Descripción de la clase Conjunto
La idea es que esta clase represente lo mejor posible el comportamiento de conjuntos en sentido matemático. Estos conjuntos sólo contendrán elementos enteros. Por ello su clase debe permitir operaciones como:
  1. Creación de un conjunto con un elemento único.
  2. Unión de un conjunto con otro (usaremos el operador + para ello).
  3. Intersección de un conjunto con otro (usaremos el operador * para ello).
  4. Obtener la cardinalidad de un conjunto.
  5. Determiar si un elemento pertenece o no al conjunto.
  6. Determinar si dos conjuntos son iguales. (usaremos el operador == para ello)
Además de las anteriores, la clase conjunto que usted implementará contendrá las operaciones de:
  1. Agregar un elemento al conjunto
  2. Limpiar el conjunto, esto es eliminar todos los elemento de éste.
Para efectos de revisar su tarea, usted debe proveer el programa de prueba que llamará prueba.cpp. Éste contiene la función main. El ayudante es libre de probar su clase con otro archivo de prueba.

Para partir usted puede considerar los siguientes archivo que definen la versión preliminar de la clase Conjunto y el archivo prueba.cpp.