X-Git-Url: https://git.llucax.com/z.facultad/75.42/euler-oo.git/blobdiff_plain/2ad7702430009b7adee71c280ad23a7c184fa0c8..eb6b99adc3dc50aa348dbecbed69b2c4ba41477e:/dibujo.cpp?ds=sidebyside diff --git a/dibujo.cpp b/dibujo.cpp index 23ac3b3..e591cd7 100644 --- a/dibujo.cpp +++ b/dibujo.cpp @@ -1,9 +1,9 @@ -/* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=0 fo+=t tw=80: +/* vim: set et sts=4 sw=4 fdm=indent fdn=1 fo+=t tw=80: * * Taller de Programación (75.42). * - * Ejercicio Número 2: - * TODO + * Ejercicio Número 3: + * Lista de figuras. * * Copyleft 2003 - Leandro Lucarella * Puede copiar, modificar y distribuir este programa bajo los términos de @@ -14,29 +14,41 @@ * $Id$ */ -#include "dllist.h" #include "dibujo.h" -Dibujo::Dibujo(void): figuras() {} +#ifdef DEBUG +# include +#endif + +Dibujo::Dibujo(void): figuras() { +#ifdef DEBUG + std::cerr << "En constructor de Dibujo." << std::endl; +#endif +} Dibujo::~Dibujo(void) { +#ifdef DEBUG + std::cerr << "En destructor de Dibujo." << std::endl; +#endif } -bool Dibujo::agregar_figura(const Figura& figura) { - return figuras.push(&figura); +bool Dibujo::agregar_figura(Figura* figura) { + return figuras.push(static_cast(figura)); } void Dibujo::borrar_todo(void) { // Saco cada elemento de la lista, liberando su memoria. while (!figuras.empty()) { - delete figuras.pop(); + delete static_cast(figuras.pop()); } } -void Dibujo::dibujar(void) { +void Dibujo::dibujar(std::ostream& out) { // Dibujo cada elemento. - for (Figura* f = figuras.begin(); figuras.have_more(); f = figuras.next()) { - cout << f << endl; // FIXME + for (Figura* f = static_cast(figuras.begin()); + figuras.have_more(); f = static_cast(figuras.next())) { + f->dibujar(out); + out << std::endl; } }