Vous êtes sur la page 1sur 3

Evaluacin: Programacin Orientada a Objetos o o

Prof: Nancy Hitschfeld K. Aux: Carlos Hurtado/Karl Strasser 26 Abril 2007


1. Estudie el siguiente cdigo en c++ y diga qu se verica en tiempo de compilacin y qu o e o e mtodos se llaman en tiempo de ejecucin. Si hay errores, comente por qu se producen. e o e class A{ ... public: A(){...} virtual ~A(){...} virtual void g() { ..} virtual void f()=0; void i(){ ... g() ...} } A* a = new B; a->i(); a->g(); a->f(); delete a; a = new A; a->i(); 2. Considere la denicin de la siguiente jerarqu de clases: o a class A{ ... public: A(){} || ~A(){} || void g(T){} || int f(){ return 0;} class B: public A { ... public: B(){} || ~B(){} || void g(U){} || int f(){ T t; g(t); return 1; } void i() { int n=f(); 1 class C: public B{ ... public: C(){} ~C(){} void g(U){} int f(){ U u; g(u); return 2; } class B: public A { ... public: B(){...} ~B(){...} void g(){...} void f(){ ...} }

} }; }; };

Para Codigo descrito a continuacin, diga qu se chequea en tiempo de compilacin y o e o a qu mtodos de qu objeto se llama en tiempo de ejecucin. Si hay errores diga por e e e o qu se producen. e U* u; A* a = new B; a->i(); a->g(u); int n = a->f(); delete a; B* b = new C; b->i(); b->g(u); delete b; 3. Un colegio quiere contar con un programa que le permita organizar tanto su informacin o estructural (salas de clase, auditoriums, ba os, casinos, laboratorios, ocinas, sillas, n mesas, escritorios, computadores, puertas, etc.) como la de las personas que all trabajan o estudian (profesores, alumnos y director, entre otros). El programa debe ser fcilmente a extensible en el tipo de piezas a considerar y en el tipo de personas que interact an en u l. El programa debe poder responder consultas como: En qu cursos est un alumno e e a de Rut yyyy? Quienes son los profesores de un alumno de rut yyyy ? Qu dimensiones e tiene una pieza identicada con un cierto nombre? a) Dise e un diagrama de clases indicando qu relaciones entre clases escogi y por qu. n e o e b) Incluya todas las variables de instancia y mtodos a las clases correspondientes que e le permitan responder a las consultas indicadas de manera apropiada. d) Identique al menos dos patrones de diseo que podr usar y justique su eleccin. a o Modique su dise o para incorporarlos. n 4. Un edicio est formado por un cierto n mero de pisos y un piso por un cierto n mero a u u de departamentos. Para modelar edicios, departamentos y pisos con forma de paralelepipedo, y adems reusar los mtodos que provee paralelep a e pedo para calcular su largo, ancho, alto y volumen, se propone la siguiente jerarqu a: class Paralelepipedo{ float ancho, alto, largo; public: Paralelepipedo(float,float,float); ~Paralelepipedo(); float Volumen(); float Ancho(); float Alto(); 2 class Piso: public Paralelepipedo{ List<Paralelepipedo> departamentos; public: int NumeroDepartamentos(); Paralelepipedo ObtenerDepartamento(int i); }

float Largo(); boolean EsUnCubo(); } class Edificio: public Piso{ List<Piso> pisos; public: int NumeroPisos(); Piso ObtenerPiso( int i) } Discuta la jerarqu de acuerdo al concepto de subtipos. Proponga una nueva a solucin que satisfaga el concepto de subtipos en caso que la propuesta no lo o cumpla. Modique el diagrama de clases anterior, para que sea fcilmente extensible a a modelar pisos, departamentos y edicios con distintos tipos de formas (cilindros, esferas, paralelep dedos, cubos, etc)? Justique su respuesta.

Vous aimerez peut-être aussi