之所以说是“编程入门”而不说是“C++入门”,是因为这本书面对的就是对编程一无所知的人群,假如你已经熟练掌握了C语言,那么或许可以试试C++Primer。 之所以选择用带plus的这本,是因为我当初也是用同一作者的C Primer Plus入门C的(教材是谭浩强…不提了,心理阴影),出于对作者的信任也就选择了他的这本C++Primer Plus。 和不带plus的相比,本书花费了极大的篇幅(印象里近乎200页)不厌其烦地介绍了面向过程编程,if、for、while、switch语句讲了好几章,如果是熟悉C的人估计会看得很不耐烦。 缺点就是印刷错误有点多(但个人感觉瑕不掩瑜),并且有的地方讲得太乱了,可以看出作者很努力的想讲明白某个概念,为此耗费了许多页纸,然而却让我越看越晕…印象比较深的就是虚函数、友元、const的用法还有构造、析构、复制构造、拷贝构造等概念……看得头都晕了。 这本书是我在大二的寒假用20天看完的,从此以后就踏上了Object Oriented的玄学之路。
后续进阶可以看C++Primer(此书的编程风格较好,且对C11新增特性均有提及,不像Prata书的代码带有浓郁的C风格,C11新增特性大多只在附录简单一提)、Inside the C++ Object Model、Thinking in C++、The C++ Programming Language、Ruminations on C++、Effective C++、More Effective C++、Effecrive STL等等。 总的来说,如果你之前没学过任何编程语言、或学了C但只是半吊子,那我推荐你使用这本书,因为本书有比较多的完整源代码,跟着书上多敲几遍也就懂了;C++Primer在C++界的地位当然不是本书能比的,但个人觉得开头几章对新手不是很友好,并且一般都只摘出源码的一部分来讲解,完整的源码不多。 一旦学完本书,那C++Primer你就可以当休闲小说来看了,个人认为两本只要吃透了其中一本,都足以应付在学校期间的绝大多数需求。之后该看什么,想必自己已能够分辨。 感谢Prata为我们奉献了C与C++的两本极优秀的入门书籍。