博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
48、C++ Primer 4th 笔记,句柄类,继承,虚函数等的一个综合例子(未完)
阅读量:4474 次
发布时间:2019-06-08

本文共 1279 字,大约阅读时间需要 4 分钟。

C++ Primer 4th 笔记,句柄类,继承,虚函数等的一个综合例子(未完)

文本查询示例

修改参考中的文本示例,查询支持与或非联查。应用句柄类,继承,虚函数等使程序更加健壮和可扩展。

抽象基类Query_base,与查询和或查询具有其他类没有一个性质:有两个操作数,所以我们为之抽象一个BinaryQuery类。

Query_base的两个关键操作是:

1eval操作:返回匹配行编号的集合。

2)打印查询。

通过定义句柄类(handle class),隐藏继承层次,使用户代码和类代码都简洁,用户代码只能间接操作Query_base对象。

1、设计重述

TextQuery

读指定文件并建立数得上映射的类,该类提供 query_text 操作,该操作接受 string 实参并返回一个 set,保存出现实参的行的编号。

Query_base

查询类的抽象基类。

Query

用户计数的句柄类,它指向 Query_base 派生类型的对象。

WordQuery

Query_base 派生的类,查找给定单词。

NotQuery

Query_base 派生的类,返回操作数不出现的行的编号集合。

BinaryQuery

Query_base 派生的抽象基类类型,表示带两个 Query 操作数的查询。

OrQuery

BinaryQuery 派生的类,返回两个操作数出现的行编号集的并集。

AndQuery

BinaryQuery 派生的类,返回两个操作数出现的行编号集的交集。

q1 & q2

返回Query对象,该Query 对象绑定到保存 q1 q2 的新AndQuery 对象。

q1 | q2

返回Query对象,该 Query 对象绑定到保存 q1 q2 的新OrQuery 对象。

~q

返回 Query 对象,该 Query 对象绑定到保存 q 的新 NotQuery对象。

Query q(s)

Query q 绑定到保存 string s 的新 WordQuery 对象。

需要认识到的一点是:much of the work in this application consists of building objects to represent the user's query

Query q = Query("fiery") & Query("bird") | Query("wind");

2、实现

代码示例

代码示例

3、C++定义继承层次接口的句柄类很常见,这些类分配并管理指向继承层次中对象的指针,因此能够使用户代码在无须处理指针的情况下获得动态行为。

4、如果派生类没有定义所继承的纯虚函数,则派生类也是抽象类。

5、通过引用和指针进行的虚函数调用,在运行时基于引用和指针所绑定的对象而确定。

参考

[1] 查询文本示例

[2] 句柄类

转载于:https://www.cnblogs.com/mydomain/archive/2012/06/07/2539851.html

你可能感兴趣的文章
Mysql的DATE_FORMAT()日期格式转换
查看>>
SparkStreaming入门及例子
查看>>
Web应用增加struts2支持
查看>>
java程序——凯撒加密
查看>>
Windows Store App之数据存储
查看>>
English class 82 The Importance of traveling
查看>>
python用递归函数解汉诺塔游戏
查看>>
Redis与Python交互
查看>>
Maximum-SubsequenceSum
查看>>
常用的一些shell变量
查看>>
Android无法删除项目+导入项目报错
查看>>
poj 2349(最小生成树应用)
查看>>
Shell编程-条件测试 | 基础篇
查看>>
AngularJs学习笔记1——总体介绍
查看>>
绝对定位和相对定位
查看>>
实习第二天——学习mac终端命令(unix命令)和git代码管理
查看>>
微信支付
查看>>
吴裕雄--天生自然 高等数学学习:含参变量的积分
查看>>
成本的费用归集
查看>>
运行时库组件 RuntimePack v19.06.05 Full 纯净安装版
查看>>