#ifndef PREGUNTA_H #define PREGUNTA_H #include #include #include class Pregunta { protected: std::string tipo; std::string texto; std::string respuesta; public: Pregunta(const std::string& tipo); virtual ~Pregunta() { } virtual std::istream& leer(std::istream& in); virtual std::ostream& imprimir(std::ostream& out) const; /// Aplica la pregunta al jugador. ES decir, le hace la pregunta y espera la respuesta. /// Retorna la cantidad de puntos obtenidos por el jugador, lo cual depende de si /// contesto o no correctamente la pregunta. virtual int aplicar() const = 0; }; // cin >> pregunta inline std::istream& operator>>(std::istream& in, Pregunta& pregunta) { return pregunta.leer(in); } // cout << pregunta inline std::ostream& operator<<(std::ostream& out, const Pregunta& pregunta) { return pregunta.imprimir(out); } #endif // PREGUNTA_H