前言
一本合适的入门书能让你学习的时候信心倍增,如饥似渴,而一本不合适的入门书让你望而却步,怀疑人生。
它很优秀
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++,那么建议你阅读。
再说两句
- 如果你阅读了本书,觉得难,也不要怀疑,因为它不适合初学者
- 语言特性之外还有诸如编译链接,内存管理等诸多知识需要了解。
- 好不一定适合自己,具体情况具体分析。
- 以上纯属个人观点,仅供参考。
不说了,显示器不够高了,垫一下。