C++ Primer:英文版

C++ Primer:英文版
作 者: Stanley Lippman Josee Lajoie
出版社: 人民邮电出版社
丛编项: 图灵原版计算机科学系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: C++
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Stanley B. Lippman 自 1984 年起他一直从事 C++ 方面的工作,曾经担任迪士尼动画公司的首席软件设计师。他在 AT&T Bell 实验室时曾领导过最早的 C++ 编译器 cfront 的 3.0 和 2.1 版本的开发小组。他也曾是 Bjarne Stroustrup 领导的 Bell 实验室 Foundation 研究项目的成员之一,负责 C++ 程序设计环境的对象模型部分。目前他已受雇于微软公司,成为 Microsoft C++/CLI 的架构设计师。 Josée Lajoie 曾经是 IBM 加拿大实验室的 C/C++ 编译器开发组的成员,也曾是 ANSI/ISO C++ 标准委员会的核心语言工作组的主席。她是《 C++ Report 》杂志的专栏作家,目前她在滑铁卢大学计算机图形学硕士学位。

内容简介

《C++Primer(英文影印版)(第3版)(畅销国内外的经典图书)》本书全面讲解了C++程序设计语言的特性和用法。全书分五个部分对C++进行阐述。第一部分是C++概述,第二部分在此基础上介绍C++语言,主要涉及数据类型、表达式、语句及抽象容器类型,第三部分是基于过程的程序设计,主要介绍函数、域和生命期、重载函数、函数模板、异常处理及泛型算法,第四部分是基于对象的程序设计,主要介绍类、重载操作符及类模板,第五部分是面向对象的程序设计,主要讲解类继承和子类型、多继承和虚拟继承及iostream库等。本书中融合了StanleyLippman的实践经验和JoséeLajoie对于ANSI/ISO标准C++的深入理解,各个层次的程序设计人员都会从本书中获益匪浅。本书完美地结合了StanleyB.Lippman的实践经验和JoséeLajoie对于ANSI/ISO的深入理解,更加准确地讲述了标准C++的特性和用法。对于C++的初学者,特别有价值的是一些来自真实世界的编程示例,这些示例说明了泛型程序的设计、面向对象程序设计、模板的用法以及使用标准C++的其他方面。除此之外,本书还在适当的地方提供了用法和效率方面的指导。本书特色·从实用的角度出发,清晰地讲解了标准库,并辅以丰富的例子,重点强调容器、迭代器、算法(即标准模板库STL)、string类和iostream。·详细讨论了标准C++的新特性,包括异常处理、运行时类型识别、名字空间、内置布尔类型和新类型强制转换表示等,并说明了如何有效地使用这些特性。·全面介绍了C++语言的高级特性,例如模板、类、继承机制,以适应泛型程序设计、面向对象程序设计和基于对象程序设计。·特别提供了一个附录,可作为泛型算法快速参考,描述了这些算法的行为,并提供使用这些算法的具体示例。

图书目录

Part I: C++, An Overview

Chapter 1: Getting Started

1.1: Problem Solving

1.2: The C++ Program

1.3: Preprocessor Directives

1.4: A Word About Comments

1.5: A First Look at Input/Output

Chapter 2: A Tour of C++

2.1: The Built-In Array Data Type

2.2: Dynamic Memory Allocation and Pointers..

2.3: An Object-Based Design

2.4: An Object-Oriented Design

2.5: A Generic Design

2.6: An Exception-Based Design

2.7: An Array by Any Other Name

2.8: The Standard Array Is a Vector

Part II: The Basic Language

Chapter 3: The C++ Data Types

3.1: Literal Constant

3.2: Variables

3.3: Pointer Types

3.4: String Types

3.5: const Qualifier

3.6: Reference Types

3.7: The bool Type

3.8: Enumeration Types

3.9: Array Types

3.10: The vector Container Type

3.11: complex Number Types

3.12: Typedef Names

3.13: volatile Qualifier

3.14: The pair Type

3.15: Class Types

Chapter 4: Expressions

4.1: What Is an Expression?

4.2: Arithmetic Operators

4.3: Equality, Relational, and Logical Operators..

4.4: Assignment Operators

4.5: Increment and Decrement Operators

4.6: Complex Number Operations

4.7: The Conditional Operator

4.8: The sizeof Operator

4.9: The new and delete Expressions

4.10: Comma Operator

4.11: The Bitwise Operators

4.12: bitset Operations

4.13: Precedence

4.14: Type Conversions

4.15: AStack Class Example

Chapter 5: Statements

5.1: Simple and Compound Statements

5.2: Declaration Statement

5.3: The if Statement

5.4: The switch Statement

5.5: The for Loop Statement

5.6: The while Statement

5.7: The do while Statement

5.8: The break Statement

5.9: The continue Statement

5.10: The goto Statement

5.11: A Linked List Example

Chapter 6: Abstract Container Types

6.1: Our Text Query System

6.2: A vector or a list?

6,3: How a vector Grows Itself

6.4: Defining a Sequence Container

6.5: Iterators

6.6: Sequence Container Operations

6.7: Storing Lines of Text

6.8: Finding a Substring

6.9: Handling Punctuation

6.10: A String by Any Other Format

6.11: Additional String Operations

6.12: Building a Text Location Map

6.13: Building a Word Exclusion Set

6.14: The Complete Program

6.15: Multimap and Multiset

6.16: Stack

6.17: Queue and Priority Queue

6.18: Revisiting Our iStack Class

Part III: Procedural-Based Programming

Chapter 7: Functions

7.1: Overview

7.2: Function Prototype

7.3: Argument Passing

7.4: Returning a Value

7.5: Recursion

7.6: Inline Functions

7.7: Linkage Directives: extern"C"

7.8: main(): Handling Command Line Options

7.9: Pointers to Functions

Chapter 8: Scope and Lifetime

8.1: Scope

8.2: Global Objects and Functions

8.3: Local Objects

8.4: Dynamically Allocated Objects

8.5: Namespace Definitions

8.6: Using Namespace Members

Chapter 9: Overloaded Functions

9.1: Overloaded Function Declarations

9.2: The Three Steps of Overload Resolution

9.3: Argument Type Conversions

9.4: Details of Function Overload Resolution

Chapter 10: Function Templates

10.1: Function Template Definition

10.2: Function Template Instantiation

10.3: Template Argument Deduction

10.4: Explicit Template Arguments

10.5: Template Compilation Models

10.6: Template Explicit Specialization

10.7: Overloading Function Templates

10.8: Overload Resolution with Instantiations

10.9: Name Resolution in Template Definitions

10.10: Namespaces and Function Templates

10.11: Function Template Example

Chapter 11: Exception Handling

11.1: Throwing an Exception

11.2: The Try Block

11.3: Catching an Exception

11.4: Exception Specifications

11.5: Exceptions and Design Issues

Chapter 12: The Generic Algorithms

12.1: Overview

12.2: Using the Generic Algorithms

12.3: Function Objects

12.4: Revisiting Iterators

12.5: The Generic Algorithms

12.6: When Not to Use the Generic Algorithms

Part IV: Object-Based Prosramming

Chapter 13: Classes

13.1: Class Definition

13.2: Class Objects

13.3: Class Member Functions

13.4: The Implicit this Pointer

13.5: Static Class Members

13.6: Pointer to Class Member

13.7: Union: A Space-Saving Class

13.8: Bit-field: A Space-Saving Member

13.9: Class Scope

13.10: Nested Classes

13.11: Classes as Namespace Members

13.2: Local Classes

Chapter 14: Class Initialization, Assignment, and Destruction

14.1: Class Initialization

14.2: The Class Constructor

14.3: The Class Destructor

14.4: Class Object Arrays and Vectors

14.5: The Member Initialization List

14.6: Memberwise Initialization

14.7: Memberwise Assignment

14.8: Efficiency Considerations

Chapter 15: Overloaded Operators and User-Defined Conversions. .,

15.1: Operator Overloading

15.2: Friends

15.3: Operator

15.4: Operator [ ]

15.5: Operator ( )

15.6: Operator->

15.7: Operators ++ and

15.8: Operators new and delete

15.9: User-Defined Conversions

15.10: Selecting a Conversion

15.11: Overload Resolution and Member Functions

15.12: Overload Resolution and Operators

Chapter 16: Class Templates

16.1: Class Template Definition

16.2: Class Template Instantiation

16.3:, Member Functions of Class Templates

16.4: Friend Declarations in Class Templates

16.5: Static Data Members of Class Templates

16.6: Nested Types of Class Templates

16.7: Member Templates

16.8: Class Templates and Compilation Model

16.9: Class Template Specializations

16.10: Class Template Partial Specializations

16.11: Name Resolution in Class Templates

16.12: Namespaces and Class Templates

16.13: A Template Array Class

Part V: Object-Oriented Programming

Chapter 17: Class Inheritance and Subtyping

17.1: Defining a Class Hierarchy

17.2: Identifying the Members of the Hierarchy

17.3: Base Class Member Access

17.4: Base and Derived Class Construction

17.5: Base and Derived Class VirtUal Functions

17.6: Memberwise Initialization and Assignment

17.7: A UserQuery Manager Class

17.8: Putting It Together

Chapter 18: Multiple and Virtual Inheritance

18.1: Setting the Stage

18.2: Multiple Inheritance

18.3: Public, Private, and Protected Inheritance

18.4: Class Scope under Inheritance

18.5: Vh'tual Inheritance

18.6: A Multiple, Virtual Inheritance Example

Chapter 19: Uses of Inheritance in C ++

19.1: Run-Tune Type Identification

19.2: Exceptions and Inheritance

19.3: Overload Resolution and Inheritance

Chapter 20: The iostream Library

20.1: The Output Operator<<

20.2: Input

20.3: Additional Input/Output Operators

20.4: Overloading the Output Operator <<

20.5: Overloading the Input Operator >>

20.8: File Input and Output

20.7: Condition States

20.8: String Streams

20.9: Format State

20.10: A Strongly Typed Library

Appendix: The Generic Algorithms Alphabetically..

accumulate()

adjacent_difference0

adjacent_find()

bimry_search()

copy()

copy_backward()

count()

count_if()

equal()

equal_range()

fill()

fill_n()

find()

find_if()

find_end()

find_first_of()

for_each()

generate()

generate_n()

includes()

inner_product()

inplace_merge()

iter_swap ()

lexicographical_compare()

lower_bound()

max()

max_element()

min()

min_element()

merse()

mismatch()

next_permutation()

nth_element()

partial_sort()

partial_sort_copy()

partial_sum()

partition()

prev_permutation()

random_shuffle()

remove()

remove_copy()

remove_if()

remove_copy_if()

replace()

replace_copy()

replace_if()

replace_copy_if()

reverse()

reverse_copy()

rotate()

rotate_copy()

search()

search_n()

set_difference()

set_intersection()

set_symmetric_difference()

set_union()

sort()

stable_partition()

stable_sort()

swap()

swap_range()

transform()

unique()

unique_copy()

upper_bound()

Heap Algorithms

make_heap()

pop_heap()

push_heap()

sort_heap()

Index