]> git.llucax.com Git - z.facultad/75.42/euler-oo.git/commitdiff
Primera versión compilable de Dibujo.
authorLeandro Lucarella <llucax@gmail.com>
Fri, 19 Sep 2003 05:21:09 +0000 (05:21 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Fri, 19 Sep 2003 05:21:09 +0000 (05:21 +0000)
dibujo.cpp
dibujo.h
figura.h
punto.h [new file with mode: 0644]

index 5ccd0d0beb0221f12731835b6b1a26f117d16205..c8106e603d870fc6d05a975d8cb4cac6758017f9 100644 (file)
@@ -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<void*>(figura));
 }
 
 void Dibujo::borrar_todo(void) {
     // Saco cada elemento de la lista, liberando su memoria.
     while (!figuras.empty()) {
-        delete figuras.pop();
+        delete static_cast<Figura*>(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<Figura*>(figuras.begin());
+            figuras.have_more(); f = static_cast<Figura*>(figuras.next())) {
+        // TODO cout << f << endl; // FIXME
     }
 }
 
index f16fc5726a1853a07847d8038309f821b37f833d..120db8400f3d99c990f10d9fa6481aa98212de08 100644 (file)
--- 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 */
index 2d1d632bda0548684cf5330548e2bdf5cdbf5760..37ce4b457d5f37c49ec874d7b2a637ac8e8109ee 100644 (file)
--- a/figura.h
+++ b/figura.h
@@ -17,6 +17,9 @@
 #ifndef FIGURA_H
 #define FIGURA_H
 
+#include "punto.h"
+#include <string>
+
 /**
  * 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 (file)
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 <llucare@fi.uba.ar>
+ * 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