From: Leandro Lucarella Date: Fri, 19 Sep 2003 05:21:09 +0000 (+0000) Subject: Primera versión compilable de Dibujo. X-Git-Tag: svn_import~17 X-Git-Url: https://git.llucax.com/z.facultad/75.42/euler-oo.git/commitdiff_plain/05e3266645418717eaf79715c053725ea7115266?ds=inline Primera versión compilable de Dibujo. --- diff --git a/dibujo.cpp b/dibujo.cpp index 5ccd0d0..c8106e6 100644 --- a/dibujo.cpp +++ b/dibujo.cpp @@ -15,6 +15,7 @@ */ #include "dllist.h" +#include "figura.h" #include "dibujo.h" Dibujo::Dibujo(void): figuras() {} @@ -22,21 +23,22 @@ Dibujo::Dibujo(void): figuras() {} Dibujo::~Dibujo(void) { } -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) { // 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())) { + // TODO cout << f << endl; // FIXME } } diff --git a/dibujo.h b/dibujo.h index f16fc57..120db84 100644 --- a/dibujo.h +++ b/dibujo.h @@ -17,6 +17,9 @@ #ifndef DIBUJO_H #define DIBUJO_H +#include "dllist.h" +#include "figura.h" + /** * Representa un conjunto de figuras. */ @@ -43,7 +46,7 @@ class Dibujo { * * \return true si se pudo agregar, false si no. */ - bool agregar_figura(const Figura& figura); + bool agregar_figura(Figura* figura); /** * Borra todas las figuras. @@ -53,8 +56,8 @@ class Dibujo { /** * Dibuja. */ - virtual void dibujar(void) const; + virtual void dibujar(void); -} +}; #endif /* DIBUJO_H */ diff --git a/figura.h b/figura.h index 2d1d632..37ce4b4 100644 --- a/figura.h +++ b/figura.h @@ -17,6 +17,9 @@ #ifndef FIGURA_H #define FIGURA_H +#include "punto.h" +#include + /** * Figura dibujable. */ @@ -33,7 +36,7 @@ class Figura { Punto centro; /// Nombre. - string nombre; + std::string nombre; public: @@ -53,6 +56,6 @@ class Figura { */ virtual void dibujar(void) const; -} +}; #endif /* FIGURA_H */ diff --git a/punto.h b/punto.h new file mode 100644 index 0000000..e8275bb --- /dev/null +++ b/punto.h @@ -0,0 +1,28 @@ +/* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=1 fo+=t tw=80: + * + * Taller de Programación (75.42). + * + * Ejercicio Número 3: + * Lista de figuras. + * + * Copyleft 2003 - Leandro Lucarella + * Puede copiar, modificar y distribuir este programa bajo los términos de + * la licencia GPL (http://www.gnu.org/). + * + * Creado: vie sep 19 01:38:17 ART 2003 + * + * $Id$ + */ + +#ifndef PUNTO_H +#define PUNTO_H + +/** + * Punto de un plano. + */ +struct Punto { + int x; + int y; +}; + +#endif // PUNTO_H