Universidad de Costa Rica Escuela de Computación |
Quiz 07 |
CI-1201 Programación II - 2013a Profesor Jeisson Hidalgo-Céspedes |
Encuentre los errores. El código de abajo intenta representar la jerarquía de materiales (libros, revistas) de una biblioteca, pero hay más de 13 errores. Encuentre 10 de ellos, márquelos e indique qué está mal. Los errores pueden ser lógicos, sintácticos o de malas prácticas de programación. La figura muestra la herencia que se quería representar en el programa.
#includeusing namespace std; class Material { string titulo; string signatura; protected: Material(const string& titulo, const string& signatura) : titulo(titulo), signatura(signatura); ostream& imprimir(ostream& salida) { return salida << titulo << " [" << signatura << ']'; } ostream& operator>>(ostream& salida, Material& material) { return salida.imprimir(*this); } }; class Libro : Material { protected: vector autores; unsigned int edicion; string editorial; string pais; unsigned long numeroPaginas; public: Libro(const string& titulo, const string& signatura, const vector & autores) : autores(autores) { } ostream imprimir(ostream salida) const { return salida << titulo << ". " << edicion << "ed\n" << editorial << ". " << pais << ". " << anno; } } class Revista(Material) { protected: int numero; int anno, mes, dia; public: ostream& imprimir(ostream& salida) const { return parent.imprimir(salida) << endl << numero << ": " << anno << '-' << mes << '-' dia; } }; ]]>