作 者:(美)李普曼,(美)拉乔伊,(美)默 著作 定 价:128 出 版 社:电子工业出版社 出版日期:2013年05月01日 页 数:938 装 帧:平装 ISBN:9787121200380 ●Contents
●Preface xxiii
●Chapter 1 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
●1.1 Writing a Simple C++Program . . . . . . . . . . . . . . . . . . . . . . 2
●1.1.1 Compiling and Executing Our Program . . . . . . . . . . . . . 3
●1.2 AFirstLookat Input/Output . . . . . . . . . . . . . . . . . . . . . . . 5
●1.3 AWordaboutComments . . . . . . . . . . . . . . . . . . . . . . . . . 9
●1.4 FlowofControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
●1.4.1 The whileStatement . . . . . . . . . . . . . . . . . . . . . . . 11
●1.4.2 The forStatement . . . . . . . . . . . . . . . . . . . . . . . . . 13
●1.4.3 ReadinganUnknownNumberof Inputs . . . . . . . . . . . . 14
●1.4.4 The ifStatement . . . . . . . . . . . . . . . . . . . . . . . . . . 17
●1.5 IntroducingClasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
●1.5.1 The Sales_itemClass . . . . . . . . . . . . . . . . . . . . . . 20
●1.5.2 AFirstLookatMemberFunctions . . . . . . . . . . . . . . . . 23
●1.6 TheBookstoreProgram. . . . . . . . . . . . . . . . . . . . . . . . . . . 24
●ChapterSummary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
●DefinedTerms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
●Part I The Basics 29
●Chapter 2 Variables and Basic Types . . . . . . . . . . . . . . . . . . . . . 31
●部分目录
内容简介
这本久负盛名的C++经典教程,时隔八年之久,终于迎来**的重大升级。除令优选无数程序员从中受益,甚至为之迷醉的――C++大师Stanley B. Lippman的丰富实践经验,C++标准委员会原负责人Josée Lajoie对C++标准的深入理解,以及C++先驱Barbara E. Moo在C++教学方面的真知灼见外,更是基于全新的C++11标准进行了全面而有效的内容更新。**难能可贵的是,书中所有示例均全部采用C++11标准改写,这在经典升级版中极其罕见――充分体现了C++语言的重大进展极其全面实践。书中丰富的教学辅助内容、醒目的知识点提示,以及精心组织的编程示范,让这本书在C++领域的地位更加不可动摇。无论是初学者入门,或是中不错程序员提升使用,本书均为不容置疑的优选。
精通 C++:从基础到高级的全面指南 本书并非《C++ Primer》(英文版,第5版)的复制品,而是旨在为广大 C++ 学习者提供一个全面、深入且实用的学习路径,涵盖从 C++ 语言的基础概念到高级特性的方方面面,帮助读者构建坚实的编程功底,并能独立应对复杂 C++ 项目的挑战。 C++ 语言以其强大的性能、灵活的内存管理以及广泛的应用领域,一直稳居编程语言的宝座。从操作系统、游戏引擎到高性能计算、嵌入式系统,C++ 的身影无处不在。然而,C++ 的复杂性也让许多初学者望而却步。本书正是为了解决这一痛点而生,它致力于将 C++ 的深邃知识体系以清晰、易懂且循序渐进的方式呈现给读者,让学习 C++ 的过程变得更加高效和富有成效。 第一部分:C++ 语言的基石——掌握基础,稳扎稳打 在踏入 C++ 的广阔天地之前,理解其核心概念是至关重要的。本部分将带领读者深入探索 C++ 的基本构造块,为后续的学习打下坚实的基础。 变量、数据类型与运算符: 学习如何声明和使用各种基本数据类型,如整型、浮点型、字符型以及布尔型。理解不同数据类型之间的区别以及它们在内存中的表示方式。掌握算术运算符、关系运算符、逻辑运算符以及位运算符,了解它们在表达式中的优先级和结合性,并学会构建复杂的逻辑判断。 控制流: 掌握 C++ 的核心控制结构,包括顺序结构、选择结构(`if`、`else if`、`else`、`switch`)和循环结构(`for`、`while`、`do-while`)。学习如何通过条件判断和循环迭代来控制程序的执行流程,实现各种复杂的逻辑和算法。 函数: 理解函数的作用,学会如何定义、调用函数,以及如何传递参数。深入学习函数重载、递归函数等概念,并探讨函数的参数传递方式(值传递、引用传递、指针传递)对程序行为的影响。 数组与指针: 深入理解数组作为连续内存区域的特性,学习一维、多维数组的声明和操作。指针是 C++ 最强大也最具挑战性的概念之一,本书将详细讲解指针的概念、类型、解引用、指针运算,以及指针与数组、函数之间的密切关系。掌握如何安全有效地使用指针,避免内存泄漏和野指针等常见问题。 字符串: 学习 C++ 中处理字符串的两种主要方式:C 风格字符串(字符数组)和 `std::string` 类。掌握 `std::string` 提供的丰富功能,如字符串的拼接、查找、替换、比较等,以及其在各种场景下的应用。 第二部分:面向对象编程的精髓——构建模块化、可维护的代码 C++ 之所以强大,很大程度上归功于其卓越的面向对象编程(OOP)特性。本部分将引导读者领略 OOP 的魅力,掌握如何设计和实现面向对象的程序。 类与对象: 深入理解类(class)作为蓝图和对象(object)作为其实例的概念。学习如何定义类,包括数据成员(属性)和成员函数(方法)。理解访问修饰符(`public`、`private`、`protected`)的作用,以及如何通过封装来保护数据和提高代码的模块化程度。 构造函数与析构函数: 掌握构造函数的概念,理解其在对象创建时的作用,并学习如何编写不同类型的构造函数(默认构造函数、带参构造函数、拷贝构造函数)。深入理解析构函数的使命,它负责在对象生命周期结束时进行资源清理,避免内存泄漏。 继承: 学习继承的原理,即允许一个类(派生类)继承另一个类(基类)的属性和方法。掌握不同类型的继承(公有继承、保护继承、私有继承),以及多重继承的概念。理解虚函数和多态性在继承中的重要性。 多态性: 深入剖析多态性的概念,理解它如何实现“一个接口,多种实现”。学习虚函数(virtual function)的使用,以及动态绑定(dynamic binding)的机制。掌握函数重写(override)和函数隐藏(hiding),并了解多态性在实现灵活、可扩展代码中的巨大作用。 抽象类与接口: 学习如何使用纯虚函数(pure virtual function)定义抽象类,以及如何通过抽象类实现接口。理解抽象类在定义通用行为规范方面的优势,以及它们在设计大型软件系统中的重要性。 第三部分:STL—— C++ 标准库的强大后盾 C++ 标准模板库(STL)是 C++ 语言不可或缺的一部分,它提供了一系列高效、通用的容器、算法和迭代器,极大地提高了开发效率。本部分将带领读者全面掌握 STL 的核心组件。 容器: 学习 STL 提供的各种容器,包括序列容器(`vector`、`deque`、`list`)、关联容器(`map`、`set`、`multimap`、`multiset`)以及容器适配器(`stack`、`queue`、`priority_queue`)。深入理解每种容器的特性、适用场景以及它们的性能特点。 迭代器: 掌握迭代器的概念,它是 STL 访问容器元素的通用接口。学习不同类型的迭代器(输入迭代器、输出迭代器、前向迭代器、双向迭代器、随机访问迭代器),以及如何使用迭代器遍历和操作容器。 算法: 学习 STL 提供的丰富算法库,涵盖排序、查找、复制、删除、转换等各种常用操作。理解算法的泛型设计,以及如何将算法与容器结合使用,实现高效的数据处理。 函数对象(Functors)与 Lambda 表达式: 学习如何使用函数对象(functors)作为自定义的谓词或操作,以及如何使用 C++11 引入的 Lambda 表达式,以更简洁的方式定义匿名函数,从而提高代码的可读性和灵活性。 第四部分:深入探索 C++ 的高级特性 在掌握了 C++ 的基础和面向对象编程的精髓后,本部分将带领读者深入探索 C++ 的高级特性,解锁 C++ 的强大潜能。 异常处理: 学习 C++ 的异常处理机制,包括 `try`、`catch`、`throw` 关键字的使用。掌握如何捕获和处理运行时错误,提高程序的健壮性,并编写更可靠的代码。 智能指针: 深入理解手动管理内存的风险,并学习 C++11 引入的智能指针(`std::unique_ptr`、`std::shared_ptr`、`std::weak_ptr`)。掌握智能指针如何自动管理内存,有效防止内存泄漏,是现代 C++ 编程的必备技能。 模板编程: 学习模板(template)的概念,理解函数模板和类模板如何实现代码的泛化。掌握模板的声明、实例化以及模板元编程(template metaprogramming)的基本思想,从而编写高度复用且类型安全的代码。 RAII(Resource Acquisition Is Initialization): 深入理解 RAII 原则,即资源在对象的构造函数中获取,在析构函数中释放。通过 RAII,可以更安全、更优雅地管理资源,例如文件句柄、锁等,并与智能指针等特性结合使用,进一步提升代码的质量。 C++11/14/17/20 新特性概述: 简要介绍 C++ 标准近年来的重要更新,包括右值引用、移动语义、范围 `for` 循环、`auto` 类型推导、并发编程支持等。让读者了解 C++ 的发展趋势,并能利用最新的语言特性提升开发效率和代码性能。 第五部分:实践与进阶——成为 C++ 达人 理论学习固然重要,但 C++ 的学习离不开实践。本部分将提供实用的建议和指导,帮助读者巩固所学知识,并进一步提升自己的 C++ 编程能力。 调试技巧: 学习使用调试器(如 GDB、Visual Studio Debugger)来定位和解决代码中的错误。掌握设置断点、单步执行、查看变量值等调试技巧,是解决复杂问题的关键。 代码风格与最佳实践: 强调良好的代码风格、命名规范以及面向设计的原则。学习如何编写清晰、易读、易于维护的代码,为团队协作打下基础。 构建系统简介: 简要介绍常用的 C++ 构建系统,如 CMake,了解如何管理大型项目的编译和链接过程。 进阶方向建议: 根据读者的兴趣和职业规划,提供 C++ 在不同领域的应用方向建议,如游戏开发、高性能计算、嵌入式系统、操作系统等,并推荐相关的学习资源。 本书的宗旨是: 循序渐进: 从最基础的概念开始,逐步深入到复杂的高级主题。 强调理解: 不仅仅是记住语法,更要理解 C++ 语言的底层原理和设计思想。 注重实践: 鼓励读者动手实践,通过编写代码来巩固所学知识。 实用导向: 关注 C++ 在实际项目中的应用,帮助读者解决真实世界的问题。 无论您是初学者,还是希望提升 C++ 技能的开发者,本书都将是您学习 C++ 的理想伙伴。通过系统地学习本书的内容,您将能够更自信地运用 C++ 语言,开发出高性能、高可靠性的应用程序,并在 C++ 的世界里开辟属于自己的道路。