Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programación 4
Curso 2007
TRABAJO OBLIGATORIO
Este primer trabajo obligatorio tiene como objetivo enfrentar problemas clásicos de
implementación de clases en C++ mediante el desarrollo de una clase sencilla: la clase String.
Algunas consideraciones:
- La clase String debe ser implementada como un datatype, o sea: ninguna operación
(salvo los constructores y operadores =, += y >>) debe modificar la instancia implícita
sino que debe devolver una nueva.
- La estructura recomendada para la implementación es arreglos dinámicos. En caso de
querer utilizar otra estructura de datos se debe discutir previamente con el docente de
monitoreo.
- Para las operaciones que involucren índices se debe tener en cuenta que los mismos
deben comenzar en 0.
- La comparación de cadenas de caracteres debe realizarse utilizando las funciones
strcmp y strncmp.
- La entrada/salida se debe realizar utilizando la librería iostream.
- Las únicas funcionalidades provistas por la librería estándar de C++ que se pueden
utilizar en el obligatorio son las mencionadas en los 2 puntos anteriores.
- Para el manejo de errores se deben utilizar excepciones estándares de C++, por más
información ver http://www.cplusplus.com/doc/tutorial/.
- Para todas la operaciones que tengan argumentos de tipo puntero, se debe lanzar la
excepción std::invalid_argument en caso de que en tiempo de ejecución el argumento
valga NULL.
- Se debe respetar completamente la especificación dada a continuación. Esto incluye:
o nombre y modificador de las operaciones.
o orden, tipo y modificador de los parámetros.
o excepciones ante casos de error.
PARTE 1
• Constructores:
// Constructor común.
1
UNIVERSIDAD DE LA REPÚBLICA | FACULTAD DE INGENIERÍA | INSTITUTO DE COMPUTACIÓN
• Destructor:
• Operadores:
2
UNIVERSIDAD DE LA REPÚBLICA | FACULTAD DE INGENIERÍA | INSTITUTO DE COMPUTACIÓN
• Operaciones:
3
UNIVERSIDAD DE LA REPÚBLICA | FACULTAD DE INGENIERÍA | INSTITUTO DE COMPUTACIÓN
4
UNIVERSIDAD DE LA REPÚBLICA | FACULTAD DE INGENIERÍA | INSTITUTO DE COMPUTACIÓN
PARTE 2
PARTE 3
PARTE 4
Implemente un programa que pruebe todas y cada una de las funcionalidades (constructores,
destructor, operaciones y operadores) de las clase String pedidas en las partes anteriores. El
archivo debe llamarse “main.cc” (todo en minúsculas).
ENTREGA
La entrega deberá estar compuesta por los archivos “String.cc”, “String.hh” y “main.cc”. La
misma podrá ser realizada hasta las 23:59 del domingo 25 de marzo de 2007.