c++primer(5th)15章 文本查询程序 代码解读(学习继承与多态)与修改+动物运动会代码(学习继承与多态,拷贝用构造函数,=重载运算符)

两个类之间的相互引用问题解决方法参考:http://blog.csdn.net/leo115/article/details/7395077

我修改后的文本查询程序代码百度云盘下载链接:http://pan.baidu.com/s/1c12RXrq  提取密码:o40c(包括我改过的文本查询程序以及动物运动会c++代码)(这里动物运动会c++代码,之前我同学写的,也可以去看看《大话设计模式》里面附录A里面的讲解以及代码


文本查询程序:主要学习继承与多态,包装的思想模式

动物运动会:主要学习继承与多态,构造函数,拷贝用构造函数,=重载运算符。


文本查询程序 代码解读(学习继承与多态):QueryResult与TestQuery两个类,是存要查询的file以及查询单词string行号的(可以查看c++primer(5th)12章),代码最重要的是Query.h的设计,Query.h属于承上启下(上接QueryResult与TestQuery文本存储类,下启Query_base以及其派生类(Query的函数相当于包装模式(我自己说法),作用是:根据构造函数或者重载&,|,~,来给其中的基类指针赋值具体派生类,然后eval(),rep()就用某具体派生类的同名函数)。

原来的c++primer代码中的Query.h,Query.cpp里面,把query类以及Query_base以及其派生类全部掺杂在了一起,我把它分解成了query.h,query.cpp以及B.h(定义Query_base以及其派生类):这里面要解决一个问题(两个类之间的相互引用问题),因为query类用到了B类的指针,B.h用到了query类对象!可以参考http://blog.csdn.net/leo115/article/details/7395077,或者下载我改的源代码(有多处关键点我写了注释)。

动物运动会:具体不多说了,学习继承与多态经典案例。

其中拷贝用构造函数,=重载运算符的时候有一个重点,就是基类指针指向派生类对象来实现多态。有两种方法:①显式:例如动物类基类指针p1->data=new Dog(sTemp_name);②相当于“隐式”:派生类定义时,定义一个clone()函数,返回指向派生对象的基类指针。后面用到的时候,只要:p1->data=p->data->clone();(拷贝用构造函数,=重载运算符就用这个办法!!

大家也可以可以去看看《大话设计模式》里面附录A里面的讲解以及代码。或者看我下载链接里面C++写的代码。(初学者自己实现,会很有收获)

附:文本查询程序andTestMain运行结果截图:





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值