notes/ch15.md
class Bulk_quote : public Quote{};virtual关键字,也可以不加。C++11新标准允许派生类显式地注明它将使用哪个成员函数改写基类的虚函数,即在函数的形参列表之后加一个override关键字。virtual使得该函数执行动态绑定。protected : 基类和和其派生类还有友元可以访问。private : 只有基类本身和友元可以访问。public、protected、private。override关键字。final。virtual关键字,也可以不加。override关键字。override可以明确程序员的意图,让编译器帮忙确认参数列表是否出错。::)来回避虚函数的机制。=0就可以将一个虚函数说明为纯虚函数。protected说明符可以看做是public和private中的产物。struct Priv_Drev: private Base{}意味着在派生类Priv_Drev中,从Base继承而来的部分都是private的。using。class关键字定义的派生类是私有继承的;使用struct关键字定义的派生类是公有继承的。delete一个指向派生类对象的基类指针将产生未定义的行为。using Disc_quote::Disc_quote;,注明了要继承Disc_quote的构造函数。WordQueryNotQueryOrQueryAndQueryeval:接受一个TextQuery对象并返回一个QueryResult。rep:返回基础查询的string表示形式。Query程序设计:
| 操作 | 解释 |
|---|---|
Query程序接口类和操作 | |
TextQuery | 该类读入给定的文件并构建一个查找图。包含一个query操作,它接受一个string实参,返回一个QueryResult对象;该QueryResult对象表示string出现的行。 |
QueryResult | 该类保存一个query操作的结果。 |
Query | 是一个接口类,指向Query_base派生类的对象。 |
Query q(s) | 将Query对象q绑定到一个存放着string s的新WordQuery对象上。 |
q1 & q2 | 返回一个Query对象,该Query绑定到一个存放q1和q2的新AndQuery对象上。 |
| `q1 | q2` |
~q | 返回一个Query对象,该Query绑定到一个存放q的新NotQuery对象上。 |
Query程序实现类 | |
Query_base | 查询类的抽象基类 |
WordQuery | Query_base的派生类,用于查找一个给定的单词 |
NotQuery | Query_base的派生类,用于查找一个给定的单词 |
BinaryQuery | Query_base的派生类,查询结果是Query运算对象没有出现的行的集合 |
OrQuery | Query_base的派生类,返回它的两个运算对象分别出现的行的并集 |
AndQuery | Query_base的派生类,返回它的两个运算对象分别出现的行的交集 |