免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: arron刘
打印 上一主题 下一主题

[C++] 《C++ Primer中文版(第五版)》有奖试读活动(获奖名单已公布-2013-11-13) [复制链接]

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34摩羯座
日期:2013-12-01 00:21:362015年迎新春徽章
日期:2015-03-04 09:49:45
31 [报告]
发表于 2013-10-24 16:10 |只看该作者
本帖最后由 banggou 于 2013-10-27 21:01 编辑

再次重申,c++ primer 这个系列一直都是作为中级水平的c++ 编程手册使用,应该是给有基本c++开发经验同时想提升c++的编程水平的人准备的,这本书毋庸置疑是一本极佳的“武林秘籍”。

1.作为升级版,第五版包括了c++11 引入的全新内容,对象自动类型推导,代理构造,Lambda表达式,统一初始化语法,右值引用等作者都做了必要阐述,而且这些新特性是分散在全书各章节中通过例子和习题等方式进行重复说明,而不是集中在一起说明,这样不断的重复,有利于对这些新特性的快速掌握和消化。
作为c++百科全书式的书籍,大而全是其特色,其不仅通过注解等方式全面详尽的介绍了c++基本的知识以及“为什么会是这样”,同时通过言简意赅的例子代码和习题部分将一些很容易忽视的细节也展现出来,避免出错,要知道,这些点很多都是实际编程开发中遇到的问题,是多年经验的总结之谈(如同Effective C++,其实我个人觉得如果认真看了primer,Effective C++都可以省下了。。)。

2.说到练习,很好,每章节的习题都很有代表性,是对前面正文没有言尽的有效补充,关注代码为什么这样写效果就会截然不同,引导读者去思考以及注意可能是忽视的地方。同时习题解答部分也会直接用到本章节甚至之前章节所学的知识点,将之前学习到的内容重新回顾,用于加深印象。所以建议应该把习题部分都做下,巩固之前所学,这样做也能提高调试c++代码bug的能力。

3.每章后都有术语表,作为快速索引以及一种有用的知识点小结,可以帮组快速回顾每章节所学的知识点。

4.第五版内容编排设计个人认为比第四版要好,c++的特性在一开始的第一部分中即和盘托出(如类以及STL放在书本的开头进行快速简要介绍),这点不同于第四版中将C++特性分散在前三部分中分别进行介绍的编排方式,我个人觉得都放在第一部分中,可以使得知识点更为集中,甚至可以把第一部分作为C++特性的介绍说明目录),再通过后面章节不断强化第一部分介绍的各个知识点。
作者把c++作为一门全新的语言讲解而不是作为c的超集来介绍(受合著者Barbara E. Moo的影响?),这种讲解方式孰是孰非是一个见仁见智的问题,反正国内大部分c++的书都不是这样的编排方式。

5.之前看过英文版,中文版的样张出来后第一时间看了,翻译也很通顺,不过也希望提供勘误渠道,这样能及时修订。希望能重现第三版翻译版的辉煌~~

稍不足之处:
1.一些更高级的技术,比如模板元编程,Boost C++ 标准库,以及比较火的多线程等本书不可能花更多的篇幅去介绍,我认为本书的一个意义是承上启下,提升到中级水平,如果需要更深入去了解某一块地方,需要再找参考资料,因此应该提供一些推介的c++主题和相关书籍的介绍在附录中来引导读者去做更深入的研究(现在很多书籍都做了这样的尝试,eg:linux内核设计与实现,我个人觉得这样的做法很好)。

2.还是应该提供必要的课后习题答案,毕竟参考或者提示性的答案对于很多自学的码农来说还是有很大帮助的。如UNIX环境高级编程 第三版的作者Rago,就不堪众多讨要问题答案的邮件而准备推出第三版的配套解答类书籍。。 再想想C++Primer Answer Book ,第五版也应该及时出一本:wink: 。




论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34摩羯座
日期:2013-12-01 00:21:362015年迎新春徽章
日期:2015-03-04 09:49:45
32 [报告]
发表于 2013-10-24 16:12 |只看该作者
本帖最后由 banggou 于 2013-10-24 16:13 编辑






三四版,个人觉得三对我帮助更多,不知道五 如何?

论坛徽章:
17
戌狗
日期:2013-09-02 23:43:02技术图书徽章
日期:2014-04-29 14:16:02技术图书徽章
日期:2014-04-24 15:51:26未羊
日期:2014-04-06 22:10:30丑牛
日期:2014-04-06 21:23:29辰龙
日期:2014-04-06 21:20:22处女座
日期:2014-04-06 21:16:18技术图书徽章
日期:2014-04-02 15:10:51金牛座
日期:2014-03-10 22:26:18巨蟹座
日期:2014-02-17 17:12:12技术图书徽章
日期:2014-01-24 10:38:43摩羯座
日期:2013-11-29 18:00:18
33 [报告]
发表于 2013-10-24 23:14 |只看该作者
本帖最后由 jimmy-_-lixw 于 2013-11-28 11:57 编辑

..........

论坛徽章:
17
戌狗
日期:2013-09-02 23:43:02技术图书徽章
日期:2014-04-29 14:16:02技术图书徽章
日期:2014-04-24 15:51:26未羊
日期:2014-04-06 22:10:30丑牛
日期:2014-04-06 21:23:29辰龙
日期:2014-04-06 21:20:22处女座
日期:2014-04-06 21:16:18技术图书徽章
日期:2014-04-02 15:10:51金牛座
日期:2014-03-10 22:26:18巨蟹座
日期:2014-02-17 17:12:12技术图书徽章
日期:2014-01-24 10:38:43摩羯座
日期:2013-11-29 18:00:18
34 [报告]
发表于 2013-10-24 23:45 |只看该作者
本帖最后由 jimmy-_-lixw 于 2013-11-28 11:58 编辑

支持CU的活动。

论坛徽章:
6
寅虎
日期:2013-10-10 21:59:16狮子座
日期:2013-11-12 09:24:41金牛座
日期:2013-12-14 17:02:23酉鸡
日期:2014-01-16 12:34:37技术图书徽章
日期:2014-02-15 12:52:31巨蟹座
日期:2014-05-17 14:09:52
35 [报告]
发表于 2013-10-25 08:59 |只看该作者
对于primer来说,<<c++沉思录>>更名符其实。为什么需要c++,相比之下c++带来了哪些改变,它采用了哪些技术和策略,它的原因和意义,这在沉思录中都得到了揭露。《c++primer》无论怎么看都象是一本详细的语法书,更适合交给老师和学生们做一场填鸭式教学活动。对目录作一个大致的了解,然后遇到不明白的地方,再来查询阅读,这是我对primer的态度,更何况现在的中译本已经是800多页的砖头了,oh,my god!

论坛徽章:
9
CU大牛徽章
日期:2013-04-17 11:06:23CU大牛徽章
日期:2013-04-17 11:08:52CU大牛徽章
日期:2013-04-17 11:09:10CU大牛徽章
日期:2013-04-17 11:09:40CU大牛徽章
日期:2013-04-17 11:09:57CU大牛徽章
日期:2013-04-17 11:10:17CU大牛徽章
日期:2013-05-20 10:43:41CU大牛徽章
日期:2013-05-20 10:44:06CU大牛徽章
日期:2013-05-20 10:44:16
36 [报告]
发表于 2013-10-25 13:13 |只看该作者
本帖最后由 wonghoifung 于 2013-10-26 17:28 编辑

关于c++
我不是那种小学就开始编程的天才型程序员,我起步于大学,属于典型土鳖程序员。大学我们首先学了c语言,尤其记得课后作业就是做一些针对数学的解题小程序,虽然c语法学得津津有味,以为精通c语言就能工作了,但是实际当时我只能应付这种小代码,心中固然不满足,于是网上跟人胡诌,得悉c++这门c的超集语言,很快又学完,还是不知道自己能做什么,于是又求助于网上热心人士,当时流行一句话,会vc的才是真正程序员,现在听起来很傻,但是当时我十分迷信,于是开始学win32编程,最后终于写出一些小界面程序,当时我的水平就是认为有界面的程序才是高级货,并且以为有界面的才叫软件,傻里傻气,但很奇怪,听人说c++很难,从一开始我就不觉得c++本身有难度,c++对当时那么幼稚的我来说就只是一堆规则,记得了就行,好像还是大二,突然火起来两个语言,一个叫c#,一个叫java,舆论说他们比c++更高级,当时我把这个高级理解成更高档的意思,于是就放下了vc,一门心思跳进java的学习,java好些面向对象的概念对当时的我来说其实比c++更难理解,所以我更加认为java真的更高档,甚至毕业设计都是一个java网站,跳出来工作之后竟然又鬼使神差地涉足了linux c++服务器的开发,就是没有界面的,不是高档语言的c++,转眼就五六年过去了,可能当时我潜意识就认为这些没界面的东西应该更原始更简单吧,莫名地我更愿意去接受c++的各种陷阱及其对应的处理,每知道一个陷阱就觉得又充实了一点,这也可能是c++让我上瘾的原因。

关于c++ primer
此贴主要是关注c++ primer这本书的,很可惜我没有在入门的时候就接触这本书,要是这本书放在大学那时那个充满牛劲的我的床头,保证很快将它读完,在我第一份工作的时候我接触到了这本书,是那本红色的中译本,是一个同事送给我的,当时他准备转行了,办公室里有他这本翻到残旧的书,那时我对此书真心没兴趣,因为它名字叫primer,我觉得自己已经全懂了c++语言,只需按照惯用法,遵循规范,定能写出可靠的代码,事实却证明,工作需要,当我接触的开源代码越来越多,我对一些语法真的是很陌生,举个简单例子,我读再多其他c++教程也不知道explicit这个关键字,果然要知道所有c++语法,还是得读大部头,当然,事实上你还要读stl和模板方面的专著才能知道c++的其他方面知识,就是同事转行这样的机缘,我得到一本c++ primer,我断断续续在工作的空档翻完了这本书,这本书循循善诱的,真的如沐春风,时至今日,跟许多有经验的c++程序员一样,如果门外汉问我怎么入门c++,我都会很自然地说,看一遍c++ primer吧。

关于c++学习
c++11再一次完善了这个让人痴迷的语言。。。很多人对这语言的偏爱到一定程度非要掌握语言的方方面面,普通语法,OO,函数式编程,泛型,模板元编程,等等等。。。各个语言都有自己的一套编程规范,但很少有像c++这样陷阱多到要出几本书来规范和教导已经学习了语法的人如何去正确使用你已经知道的语法,没错,你学了语法还不够,你还要学习很多惯用法,对于同一个功能的实现,别的语言可能只要懂了语法就能写出高可用性的代码,而c++真的不能,你必须了解各种语法的弊端才能写出高可用的代码,不然一些大牛就不会谴责c++了,因为他们觉得很多不及格的程序员在用c++。。。所以对c++程序员进行面试是最容易出题的了,因为可选择面极广。。。好了,等你模熟了这个语言的脾气之后,等待你的将是铺天盖地的需求及代码量或者维护量,这里就涉及到语言的可调适性,众所周知,c++是不及c容易调试的,所以针对c++调试又可以出几本书来让大家学习了。。。事情还没有结束,当你学习了很多惯用法和熟悉了公司产品的业务之后,你或者已经成为一个小领导了,那新进来的程序员怎么写代码让你满意或者让项目成功呢??

关于c++11
福音倒是来了,c++11改进了这个语言的很多地方,获得性能优势,move语义,简单的说,它是优化复制的一种方式,临时对象这种受其他语言势力抨击的角色终能抬头挺胸了。。。通过使用类别属性(type traits,如is_floating_point)和模板元编程(template metaprogramming,如enable_if template),你可以为某些特定的类型定制模版,这可以实现优化,而不是像以前那样用上过度复杂的模板技巧。。。哈希表现在已经是标准实现的了,它提供更快速的插入、删除和查找,这在处理大量数据时很有用。以前你要用某些非标准的stl版本才能用上哈希表而不用重新造轮子,你现在可以随便使用unordered_map, unordered_multimap, unordered_set 和unordered_multiset这几种在boost已经有的数据结构了。。。提高效率不仅都是在代码性能方面,开发时间也是宝贵的,没人想延期任务被人质疑的,c++ 11可以让你的代码更短、更清晰、和更易于阅读,这可以让你的效率更高,auto关键字可以自动推断类型,lambda表达式提供了一种方法来定义匿名方法对象(闭包,实际上就是functor),这是代码更加线性和有规律可循,这在和stl算法结合使用时很方便。。。新的智能指针(smart pointer,强弱单一)替换了有问题的auto_ptr,你可以不用担心内存的释放并移除相关释放内存的代码了,这让代码更清晰,并杜绝了内存泄露和查找内存泄露的时间,还可参见陈硕的书,里面讲了很多该指针在多线程环境中的用处。。。把方法作为first class object是一个非常强大的特性,这让你的代码变得更灵活和通用了,c++的std::function提供了这方面的功能,方法提供一种包装和传递任何可调用的东西-函数指针, 仿函数(functor), lambda表达式等,抛开一些过时的靠继承靠虚函数实现的设计模式,依靠fco写出先进的c++代码吧。。。还有许多其它小的功能,如override、final关键字和nullptr让你的代码意图更明确,对很多人来说,相信减少视觉混乱,让代码能够更清楚地表达自己意图,会更让人高兴和让开发更高效。。。c++ 11提供了一种方法来检查先决条件并尽早的在可能的时机捕获错误-编译过程中,在你运行代码前,对,编译器断言。。。最后,c++11在并发方面的改进也是相当让人着迷,尤其是对内存模型的准确定义,让程序员从高层语言角度实现以前要嵌入汇编的功能。。。我说完了吗??

关于c++ primer第五版
其实c++11将出未出之时,已经有一些编译器偷步,实现了个别新特性,刚好当时新项目,美国的同事让大家用最新的g++环境,因为他们那边已经为新环境升级了基础库,初时不以为意,美国的同事也没有刻意告诉我们新环境有什么与别不同,是 后 面 项 目 迭 代 开 发 的 过 程 中 (为何这里要空格那么多才能提交?)某国内同事发现了可以用auto类型推断关键字,我大感新奇,于是竞相挖掘新环境有的c++11新特性,譬如哈希表有了,智能指针有了,这些在boost中用熟悉的东西自然手到拿来,最记得当时我比较喜欢用stl算法尽量减少代码,所以开发过程用了不少functor,知道c++11提供lambda之后,跃跃欲试,可惜当时开发环境还不支持,一写就报错,而且vim插件也不认这种c++语法,红红的,极为难看。当时网上看到国内程序员讨论c++11时还说什么谁敢先吃螃蟹什么的,我都跳出来说我们生产环境就在使用了,对方都将信将疑。直至今天,我还在庆幸当初在老外同事的带领下用上了十分贴近潮流的各种开发手段,譬如我们很早就用了protobuf,很早就尝试各种nosql实践,很早就用上git,等等。当时我有关注某新浪某研发人员的微博,记得一天他突然分享了c++ primer第五版的英文版pdf,据说全面覆盖c++11新特性,我马上就下载来看了,虽然早前已经通过wiki看过很多新特性,但是生怕有遗漏,还是很紧张就开始看了,虽然我们工作环境是英文环境,而且英文原版的文法难度也不大,但是始终看书的时候需要经过一层英文到中文的处理才到内容本身的理解,所以阅读英文始终比中文要慢,因此对此书中文版的面世一直抱着急切的期盼,直至早前博文出了英文版,终于看到曙光,刚好之前认识一个博文的编辑,虽然不太相熟,但是他很热情地送了我一本英文版,甚为感激,不过如前所述,阅读起来仍觉不及以前优秀的中译本那样畅快,本来我是要等双十一再大举将中文版拿下的,现在看到chinaunix赠书活动中竟然是此书,斗志被激发,回帖越改越长,盼望能得到青睐,赠我此书。话说此前我也在此获赠了陈硕的新书和一本项目管理的书籍,实在应该感恩。作为一个c++的偏执型程序员,毫无疑问地我将会继续期待c++更完美的进化。。ps:求签名本

论坛徽章:
0
37 [报告]
发表于 2013-10-25 23:17 |只看该作者
已经3年没用过C++写代码了,给本书好好学习学习呗

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34双子座
日期:2014-03-02 00:11:39fulanqi
日期:2016-06-17 17:54:25
38 [报告]
发表于 2013-10-27 11:38 |只看该作者
若干年前学习C++时,系统的看完了《C++ Primer》的英文第三版。
再后来《C++ Primer》的英文第四版出来后,也花了一段时间泛读过。
去年看到第五版发布了,把《C++ Primer》的英文第五版也抽时间泛读了一下。
不管怎样,必须要承认,《C++ Primer》是C++书籍中的经典书籍,光是大牛编著就足以让我们膜拜了。
《C++ Primer(第五版)》书中所有示例均全部采用C++11标准改写,这也算是与时俱进了。
C++是一门强劲的编程语言,在TIOBE编程语言排行榜上,它长期占据第3或第4的地位,说明它仍然是一门主流编程语言,仅次于Java、C。
C++语言的用途很广,它绝不仅限于某个领域或某些行业,而是最常用于解决问题的解决手段之一。
C++语言语法精炼、灵活,执行效率高,支持面向对象的程序设计,几乎哪里都能用到它。
早年间,学编程从C语言起步,随后又学了C++,再后来是Java,……。这些年都是根据项目需要,多语言编程。
再说说C++11。C++11版规范为C++语言引入了很多新特性。比如支持Lambda表达式(Java未来的第8版也会支持Lambda表达式);自动类型推导auto;自动化推导decltype;统一的初始化语法;Delete和Default函数;nullptr;委托构造;右值引用和move语义;以及新的C++ 11 STL标准库等。以上这些特性有助于提高编程效率。
再回到《C++ Primer(第五版)》这本书来。工作这么多年来,我最喜欢的C++入门书籍一共有三本,分别是《C++ Primer》、《C++ Primer Plus》和《C++ How to Program》,说客观一点,这三本书任意选择一本学习,你都可以把C++编程基础打得无比扎实。遗憾的是,《C++大学教程》(《C++ How to Program》的中译版)的内容还没有更新到C++ 11版,而《C++ Primer Plus》的最新版在C++ 11上又讲解得不多,因此相对来说,《C++ Primer(第五版)》是当前的最佳选择。

论坛徽章:
1
综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00
39 [报告]
发表于 2013-10-27 19:31 |只看该作者
骗钱无止境。

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
40 [报告]
发表于 2013-10-28 09:36 |只看该作者
C++一大堆功能,用得上得就看,用不上的扔那里。。。

老是研究语言细节,而又派不上用场,最后忘记了,还不如要用的时候当字典查呢。。。

C++ Primer对于我来说,就是一部字典!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP