找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

《C++ Primer》很优秀,但是不推荐入门

admin 2019-10-9 22:29 76人围观 C++相关

作者:守望,Linux应用开发者,目前在公众号【编程珠玑】 分享Linux/C/C++/数据结构与算法/工具等原创技术文章和学习资源。

前言


一本合适的入门书能让你学习的时候信心倍增,如饥似渴,而一本不合适的入门书让你望而却步,怀疑人生。

它很优秀


C++相对于其他语言来说,是一门较为复杂的语言,传言一年精通,三年熟悉,五年了解,十年用过。关于C++的言论实在太多,鉴于本人使用年限极短,不多做评价。那么我们来看看《C++ Primer》(注意,不是C++ primer plus),这本评分9.3分的书,它好在哪里?在我看来,这几个方面是非常不错的:

  • 事无巨细,从基本类型到字符串,向量和数组,从基本语句到函数;从类到容器,从动态内存到拷贝控制,从面向对象到模板泛型,它几乎涵盖了C++的各个方面,这也是为什么它是一块大钻头的原因之一。

  • 告诉你编译器怎么想。例如在介绍类的时候,告诉你编译器先编译成员的声明,然后再编译成员的函数体。在书中,有很多地方都告诉了你,编译器是如何做的,除此之外还会告诉你为什么要这样做,让你知其然,更知其所以然。

  • 最佳实践建议。一般来说,一段代码,能用就可以了,但为了保证代码生命力的长久,你必须去了解最佳实践。例如建议你尽量使用标准库类型而不是数组类型;尽量避免使用内置数组和指针等。

  • 贴心的注意事项。同样在书中很多地方告诉你,应该如何避免一些不推荐的操作,例如在说到string的时候,特别说明了字符串字面值与string是不同的类型;在说到命名空间的时候,建议不应该在头文件中使用using声明。

  • 一章结尾小结和的术语表。看完这一章了?不如看看最后的小结,看看本章核心内容是什么?感受到C++的复杂了?看看本章的术语你都了解了没有。

  • 新特性。在第五版中,最后一部分列出了C++11的新特性的索引。可以方便快速的了解C++11的新特性。

  • 配套的习题和完整可运行代码,并且有多种版本。地址:http://www.informit.com/store/c-plus-plus-primer-9780321714114

  • 可以当手册。当某个特性不是很清楚的时候,拿起来翻翻查看一下。

但不一定适合你


而正由于上面这些特点,它可能不适合初学者,其不适合的原因也非常明显:

  • 内容过多,让初学者望而却步,不知重点。在实践中,也不必全面地使用C++语言的各种特性。

  • 虽然与书配套有完整的代码,但从书中内容来看,很难清楚书中代码该如何运行,可操作性对初学者来说难度比较大,也不利于快速上手。

  • 部分内容过深,初学者看的时候不知所云,容易受挫,自我怀疑。很多内容在讲解的时候,假设你已经懂了相关的前置知识,然而你可能不懂这些前置知识,到底难以继续。

  • 第一章从hello world到类,直接上命令行。作为新手的你,可能一脸懵逼。

  • 近千页,容易变砖。

就像《C程序设计语言》一样,C++ primer并不适合没有编程基础的初学者,但是绝对适合任何一位C++学习者一读再读。

总结


它很优秀,但不一定适合你。如果你有一定的编程基础,或者已经通过其他入门书籍学习了C++,那么建议你直接食用。

再说两句


  • 如果你阅读了本书,觉得难,也不要怀疑,因为它不适合初学者

  • 语言特性之外还有诸如编译链接,内存管理等诸多前置知识需要了解。

  • 好不一定适合自己,具体情况具体分析。

  • 以上纯属个人观点,仅供参考。

不说了,显示器不够高了,垫一下。欢迎留言说说你的C++入门书,


●编号576,输入编号直达本文

●输入m获取文章目录
C语言与C++编程



分享C/C++技术文章

----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:C语言与C++编程,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......