#include <conio.h>
class Figura {
public:
virtual void Dibujar () = 0;
};
class Punto : public Figura {
protected:
int x, y;
public:
Punto (int _x, int _y);
virtual void Dibujar ();
};
Punto::Punto (int _x, int _y)
{
x = _x;
y = _y;
}
void Punto::Dibujar ()
{
gotoxy (x, y);
cout << "*";
}
class Rectangulo : public Figura {
protected:
int x1, y1, x2, y2;
public:
Rectangulo (int _x1, int _y1, int _x2, int _y2);
virtual void Dibujar ();
};
Rectangulo::Rectangulo (int _x1, int _y1, int _x2, int _y2)
{
x1 = _x1;
y1 = _y1;
x2 = _x2;
y2 = _y2;
}
void Rectangulo::Dibujar ()
{
gotoxy (x1, y1);
for (int i = x1; i <= x2; i++)
cout << "*";
gotoxy (x1, y2);
for (int i = x1; i <= x2; i++)
cout << "*";
for (int i = y1 + 1; i < y2; i++){
gotoxy (x1, i);
cout << "*";
gotoxy (x2, i);
cout << "*";
}
}
void main ()
{
const int Max = 3;
Figura * * Figuras = new Figura * [Max];
Figuras
- = new Punto (1,1);
Figuras [2] = new Punto (12,12);
for (int i = 0; i < Max; i++)
Figuras ->Dibujar ();
cout << endl << "Pulse una tecla para terminar ...";
getch ();
}
Alguien me puede explicar este programa ¿?
esta basado en polimorfismo pero no le entiendo por mas que intento
lo encontre en 'Yahoo Preguntas' por si acaso creen que es mi tarea.
pero no lo es.
Es un ayuda personal para comprender mejor el polimorfismo