注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘邓

每天收获一点点-目标:富足

 
 
 

日志

 
 

C++的皮毛还是?  

2012-05-13 22:17:25|  分类: C++编程思想(卷 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
书名:C++编程思想(第1卷)
豆瓣评分:8.3分(670人评价)
博主评价:
未评价很差较差还行推荐力荐
来自豆瓣读书资源
历时几个星期终于把C++编程思想(Thinking in C++)卷一看完了,最大的感受就是:好书!
在看读C++编程思想之前,自以为在C++的殿堂里已经登堂入室了,在读的过程中才发现只读了国内一些“C++图书”的我连皮毛都没有沾到!这里强烈鄙视国内老师学者为了赚钱,评职称而胡乱拼凑的书!读此类书的绝对是对声明的浪费!
读了这本C++编程思想后,我对C++的设计者和本书作者的智慧所折服。类的引入,继承,组合,多态,封装,模板,模板容器,迭代器,泛型算法,动态创建对象,C++的每一样特性都充满了实用性!这在我以前是无法理解的,单独学习没一二特性完全无法掌握C++的深刻内涵。上面列举的这些特性之间有巨大的联系,它们之间有的互相关联协作:如动态分配对象和容器;有的特性是别的特性实现的基础:泛型算法的实现需要依赖良好的迭代器设计。下面是我对目前理的C++的一个总结,不知道入门了没?
抽象数据类型:
面向对象方法学解决问题的方法是把问题抽象成多个不同的类,这些类的实例——对象间相互协作来完成诸多的任务。对象的属性的方法行为接受外界的消息然后做出响应,一个对象向另一个对象经过接口发送消息改变对方的属性或者自身的属性,各种属性的变更最终实现程序的目的。
类的继承和组合提供了重用类代码的方法,通过继承可以在原有类基础上加入新的属性和方法如:哺乳动物继承于动物,人类又继承于哺乳动物,这种情况只需要在哺乳动物中加入人特有的属性和行为就可以构成新类:人;通过类的组合将不同类的对象和特征组合在一起,如:学生身份类和教师身份类(一个同学可能既是学生又是老师,很多博士貌似就是这么个身份),只要把两个类的特征组合在一起就可以产生一个符合特定条件的新类:博士生身份类。
多态是非常神奇的东西,虚基类为子类提供了公共接口,然后通过指向虚基类的指针或者引用(子类的指针或者引用通过自动类型转换生成)就可以用一组接口实现多种对象的功能。
模板提供了重用源代码的方法,通过模板类和模板函数的实例化可以产生多种多样的情况,模板尤其在模板容器和泛型算法上大放异彩(STL就是最好的实现)!
多态对象创建,模板容器,迭代器,泛型算法之间的相互协作:迭代器为模板容器和泛型算法间搭建了桥梁(迭代器通过内嵌在模板容器类内实现,具体参见C++编程思想第一卷最后一章),话说程序=算法+数据结构 模板容器及其组合为程序提供了良好的数据结构实现,抽象的类及多态为数据结构的组织提供了数据,多态对象创建满足了在不知道要创建多少对象的情况下的解决方案,而多态为不知道创建具体类型的对象创造了条件。泛型算法通过迭代器可以多方位的对数据结构中的数据进行处理,得到我们想要的结构。
正如Bruce Eckel在第十五章开头说的那样,如果你学习C++却不了解多态,那么你将失去C++中最重要的一部分。在C++诸多特性中,我觉得多态是C++面向对象的精髓,刚看第十五章的开头,作者关于多态的描述当时无法理解,现在系统看下来有一种豁然开朗的感觉,一种对C++的敬畏感油然而生:
多态性提供了接口具体实现之间的另一层个例,从而将“what”和“How”分离开来。多态性改善了代码的组织性和可读性,同时也使创建的程序具有可扩展性,程序不仅在项目的最初创建期可以“扩展”,而且当在项目中需要有新的功能时也能“扩展”。
虚基类为本身和诸多子类提供了公共接口,基于指针和引用的自动类中转换为通过调用公共接口获得特定的功能提供了隐藏实现。(关于C++中如何实现多态(晩捆绑)参见C++编程思想第一卷15.5节)
虚基类的公共接口为减少重复接口调用行为提供了巨大的方便。
 
注:以上内容纯属本人拙见,错误之处还望包涵批判指正,尤其新手切不要被本人可能的错误误导,如果真是那样就罪过罪过了...
  评论这张
 
阅读(73)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017