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. Diagrama de la jerarquía de clases


#include 
using 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; }
};
]]>