书籍详情
C++ Primer:英文版
作者:(美)Stanley B.Lippman,(加)Josee Lajoie著
出版社:人民邮电出版社
出版时间:2005-09-01
ISBN:9787115140562
定价:¥69.00
购买这本书可以去
内容简介
《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++语言的高级特性,例如模板、类、继承机制,以适应泛型程序设计、面向对象程序设计和基于对象程序设计。·特别提供了一个附录,可作为泛型算法快速参考,描述了这些算法的行为,并提供使用这些算法的具体示例。
作者简介
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 》杂志的专栏作家,目前她在滑铁卢大学计算机图形学硕士学位。
目录
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
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
猜您喜欢