#ifndef EVENTO_H #define EVENTO_H #include const double costoMinimo = 50000; class Evento { protected: unsigned tipoEvento; long fecha; double duracion; unsigned participantes; std::string lugar; std::string contacto; long telefono; public: explicit Evento(unsigned tipoEvento); virtual ~Evento(); virtual std::istream& leer(std::istream& in); virtual std::ostream& imprimir(std::ostream& out) const; virtual double calcularCosto() const = 0; inline unsigned obtenerTipoEvento() const { return tipoEvento; } virtual void actualizarEstadisticas() const; virtual void imprimirOpcionesDeLectura() const; public: static unsigned totalEventos; static unsigned totalParticipantes; static double totalDuracion; static double totalCosto; static void reiniciarEstadisticas(); static void imprimirEstadisticas(); }; inline std::istream& operator>>(std::istream& in, Evento& evento) { return evento.leer(in); } inline std::ostream& operator<<(std::ostream& out, const Evento& evento) { return evento.imprimir(out); } std::string leerLinea(std::istream& in); #endif // EVENTO_H