C++ 速成课程
C++ 速成课程
简介:
引言
由 Andrew Koenig 和 Barbara Moo 合著的《Accelerated C++: Practical Programming by Example》(中文译名《C++ 速成课程》)并非又一本普通的编程语言教材。它是一份宣言,倡导一种全新的 C++ 学习方法,与 Bjarne Stroustrup 的《C++ 程序设计语言》等经典巨著截然不同。这本书出版于 2000 年,但对于那些已经掌握其他语言(如 Java、Python、C#)编程的人来说,它至今仍是学习 C++ 最高效的入门读物之一。
两位作者是 C++ 领域公认的专家:Andrew Koenig 是 C++ 标准化委员会的早期成员之一,Barbara Moo 则是多本书籍的合著者和资深编辑。他们的目标雄心勃勃:从第一天起就教会读者编写真实、现代的 C++,避开过时的实践和“裸”C 风格的代码。
这本书是关于什么的?
与传统教材从数据类型、循环和函数讲起不同,《Accelerated C++》直接让读者投入标准库(STL)的使用。第一个程序就使用了 vector、string 和 iostream。作者假设读者已经熟悉编程的基本概念(变量、条件、循环),因此不会浪费时间解释这些基础。
这本书以示例为基础。每一章都是一个完整的程序,解决一个具体问题:从单词计数到图像处理。随着章节推进,逐步引入新概念:迭代器、算法、容器、类、模板、内存管理。到书末,读者不仅掌握了语法,还能理解 C++ 的哲学:RAII、异常、拷贝并交换(copy-and-swap)惯用法。
这本书适合谁?
这本书面向有经验的程序员,他们希望快速且高质量地学习 C++。如果你已经使用过 Java、Python 或 C#,并希望转向 C++ 进行系统编程、游戏开发或高负载应用,那么这本书是你的不二之选。对于刚入门编程的新手来说,这本书可能显得过于困难和快速。
读者能学到什么?
- 标准库(STL):容器(
vector、list、map)、迭代器、算法(sort、find、copy)。 - 字符串和输入/输出处理:
string、iostream、文件流。 - C++ 面向对象编程:类、封装、继承、多态。
- 模板(templates):编写泛型代码、模板函数和模板类。
- 内存管理:智能指针(书中使用
auto_ptr,虽已过时但概念正确)、RAII、防止内存泄漏。 - 异常处理:安全代码、异常保证。
- C++ 惯用法:拷贝并交换(copy-and-swap)、pimpl、RAII 惯用法。
- 程序设计:模块划分、头文件、命名空间。
本书的优势
1. 实践导向。每一章都包含一个完整的示例,可以立即运行和修改。理论讲解恰到好处,刚好满足理解示例所需。
2. 现代 C++(就当时而言)。这本书教读者使用 STL,而不是重复造轮子。作者始终避免使用过时的结构(例如 C 风格数组、用于管理内存的裸指针)。
3. 逻辑清晰的结构。内容呈螺旋式递进:先有简单示例,然后逐渐复杂,添加新细节。这允许逐步增加难度,而不会造成过载。
4. 强调惯用法。书中不仅解释