August 2012
Intermediate to advanced
976 pages
30h 17m
English
Query_base and Query ClassesWe’ll start our implementation by defining the Query_base class:
// abstract class acts as a base class for concrete query types; all members are privateclass Query_base { friend class Query;protected: using line_no = TextQuery::line_no; // used in the eval functions virtual ~Query_base() = default;private: // eval returns the QueryResult that matches this Query virtual QueryResult eval(const TextQuery&) const = 0; // rep is a string representation of the query virtual std::string rep() const = 0;};
Both eval and rep are pure virtual functions, which makes Query_base an abstract base class (§15.4, p. 610). Because we don’t intend users, or the derived classes, to use Query_base directly, ...
Read now
Unlock full access