#ifndef DECORADORES_HH #define DECORADORES_HH void clrscr(); void gotoxy(int,int); class Visual { public: Visual(){} virtual void pintar()=0; }; class Decorador : public Visual { public: Decorador(){} Decorador(Visual*); virtual void pintar(); protected: Visual* objDecorado; }; // Decoradores concretos class Cuadrado : public Decorador { public: Cuadrado(Visual*,int); ~Cuadrado(); void pintar(); private: int x; int y; int dimension; }; class Triangulo : public Decorador { public: Triangulo(Visual*,int); ~Triangulo(); void pintar(); private: int x; int y; int dimension; }; class Rectangulo : public Decorador { public: Rectangulo(Visual*,int,int); ~Rectangulo(); void pintar(); private: int x; int y; int ancho; int largo; }; // Clase a decorar class Pantalla : public Visual { public: Pantalla(){} void pintar(); }; #endif