X-Git-Url: https://git.llucax.com/z.facultad/75.42/euler-oo.git/blobdiff_plain/7512cf9fc8b502cb6af63d27ce223de832ee1299..79b3017669076520a37e1250b7a55bd7972701f3:/dibujo.cpp diff --git a/dibujo.cpp b/dibujo.cpp index 5ccd0d0..e591cd7 100644 --- a/dibujo.cpp +++ b/dibujo.cpp @@ -1,4 +1,4 @@ -/* 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). * @@ -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; } }