#ifndef QUESTION_H #define QUESTION_H #include #include class Question { protected: std::string text; std::string answer; public: Question(); virtual ~Question(); virtual std::istream& read(std::istream& in, bool readEmptyLine = true); virtual std::ostream& print(std::ostream& out) const; virtual long ask() = 0; // pure virtual public: friend inline std::istream& operator>>(std::istream& in, Question& question) { return question.read(in); } friend inline std::ostream& operator<<(std::ostream& out, const Question& question) { return question.print(out); } }; #endif // QUESTION_H