C++ Primer, 3/e

Stanley B. Lippman, Josée Lajoie

  • 出版商: Addison Wesley
  • 出版日期: 1998-04-02
  • 售價: $798
  • 語言: 英文
  • 頁數: 1264
  • 裝訂: Paperback
  • ISBN: 0201824701
  • ISBN-13: 9780201824704
  • 相關分類: C++ 程式語言
  • 已絕版

買這商品的人也買了...

商品描述


Description

C++ Primer, Third Edition, combines the practical experience and writing of Stanley Lippman, and the inside knowledge of the ANSI/ISO Standards Draft from Josee Lajoie. Completely rewritten, this tutorial is driven by examples which help the novice C++ programmer solve problems in terms of choice of language features, implementation, and efficiency. Programming aspects of the language are presented in the context of solving a particular problem or programming task. Language rules are given both to clearly introduce the rule and provide a reference to it. The book covers the new C++ Standard Library, including extensive treatment of what was formerly known as the Standard Template Library (STL), as well as the string and complex class types. It also examines the new language features introduced into the International Standard, such as Exception Handling, Run-Time Type Identification, Namespaces, the built-in bool type, and new-style cast-notation.

Back to Top


Table Of Contents

Preface.
Structure of This Book.
Changes to the Third Edition.
The Future of C++.
Acknowledgments.
Acknowledgments to the Second Edition.
Bibliography.

I. GETTING STARTED.

1. A Journey of 1000 Miles.
Problem Solving.
The C++ Program.
Preprocessor Directives.
A Word About Comments.
A First Look at Input/Output.

2. A Tour of C++.
The Built-In Array Data Type.
Dynamic Memory Allocation and Pointers.
An Object-Based Design.
An Object-Oriented Design.
A Generic Design.
An Exception-Based Design.
An Array by Any Other Name.
The Standard Array Is a Vector.

II. THE BASIC LANGUAGE.


3. Data Types.
Literal Constant.
Variables.
Pointer Types.
String Types.
const Qualifier.
Reference Types.
The bool Type.
Enumeration Types.
Array Types.
The vector Container Type.
complex Number Types.
Typedef Names.
volatile Qualifier.
The pair Type.
Class Types.

4. Expression.
What Is an Expression?
Arithmetic Operators.
Equality, Relational, and Logical Operators.
Assignment Operators.
Increment and Decrement Operators.
Complex Number Operations.
The Conditional Operator.
The sizeof Operator.
The new and delete Expressions.
Comma Operator.
The Bitwise Operators.
bitset Operations.
Precedence.
Type Conversions.
A Stack Class Example.

5. Statements.
Simple and Compound Statements.
Declaration Statement.
The if Statement.
The switch Statement.
The for Loop Statement.
The while Statement.
The do while Statement.
The break Statement.
The continue Statement.
The goto Statement.
A Linked List Example.

6. Abstract Container Types.
Our Text Query System.
A vector or a list?
How a vector Grows Itself.
Defining a Sequence Container.
Our Text Query System.
A vector or a list?
How a vector Grows Itself.
Defining a Sequence Container.
Iterators.
Sequence Container Operations.
Storing Lines of Text.
Finding a Substring.
Handling Punctuation.
A String by Any Other Format.
Additional String Operations.
Building a Text Location Map.
Building a Word Exclusion Set.
The Complete Program.
Multimap and Multiset.
Stack.
Queue and Priority Queue.
Revisiting Our iStack Class Iterators.
Sequence Container Operations.
Storing Lines of Text.
Finding a Substring.
Handling Punctuation.
A String by Any Other Format.
Additional String Operations.
Building a Text Location Map.
Building a Word Exclusion Set.
The Complete Program.
Multimap and Multiset.
Stack.
Queue and Priority Queue.
Revisiting Our iStack Class.

III. PROCEDURAL BASED PROGRAMMING.


7. Functions.
Overview.
Function Prototype.
Argument Passing.
Returning a Value.
Recursion.
Inline Functions.
Linkage Directives: extern “C” .
main(): Handling Command Line Options.
Pointers to Functions.

8. Scope and Lifetime.
Scope.
Global Objects and Functions.
Local Objects.
Dynamically Allocated Objects.
Namespace Definitions.
Using Namespace Members.

9. Overloaded Functions.
Overloaded Function Declarations.
The Three Steps of Overload Resolution.
Argument Type Conversions.
Details of Function Overload Resolution.

10. Function Templates.
Function Template Definition.
Function Template Instantiation.
Template Argument Deduction.
Explicit Template Arguments.
Template Compilation Models.
Template Explicit Specialization.
Overloading Function Templates.
Overload Resolution with Instantiations.
Name Resolution in Template Definitions.
Namespaces and Function Templates.
Function Template Example.

11. Exception handling.
Throwing an Exception.
The Try Block.
Catching an Exception.
Exception Specifications.
Exceptions and Design Issues.

12. Generic Algorithms.
Overview.
Using the Generic Algorithms.
Function Objects.
Revisiting Iterators.
The Generic Algorithms.
When Not to Use the Generic Algorithms.

IV. OBJECT-BASED PROGRAMMING.


13. Classes.
Class Definition.
Class Objects.
Class Member Functions.
The Implicit this Pointer.
Static Class Members.
Pointer to Class Member.
Union: A Space-Saving Class.
Bit-field: A Space-Saving Member.
Class Scope.
Nested Classes.
Classes as Namespace Members.
Local Classes.

14. Initialization, Assignment, and Destruction.
Class Initialization.
The Class Constructor.
The Class Destructor.
Class Object Arrays and Vectors.
The Member Initialization List.
Memberwise Initialization.
Memberwise Assignment.
Efficiency Considerations.

15. Function And Operator Overloading.
Operator Overloading.
Friends.
Operator =.
Operator .
Operator ( ).
Operator ->.
Operators ++ and --.
Operators new and delete.
User-Defined Conversions.
Selecting a Conversion.
Overload Resolution and Member Functions.
Overload Resolution and Operators.

16. Class Templates.
Class Template Definition.
Class Template Instantiation.
Member Functions of Class Templates.
Friend Declarations in Class Templates.
Static Data Members of Class Templates.
Nested Types of Class Templates.
Member Templates.
Class Templates and Compilation Model.
Class Template Specializations.
Class Template Partial Specializations.
Name Resolution in Class Templates.
Namespaces and Class Templates.
A Template Array Class.

V. OBJECT-ORIENTED PROGRAMMING.


17. Class Inheritance and Subtyping.
Defining a Class Hierarchy.
Identifying the Members of the Hierarchy.
Base Class Member Access.
Base and Derived Class Construction.
Base and Derived Class Virtual Functions.
Memberwise Initialization and Assignment.
A UserQuery Manager Class.
Putting It Together.

18. Multiple and Virtual Inheritance.
Setting the Stage.
Multiple Inheritance.
Public, Private, and Protected Inheritance.
Class Scope under Inheritance.
Virtual Inheritance.
A Multiple, Virtual Inheritance Example.

19. Uses of Class Inheritance in C++.
Run-Time Type Identification.
Exceptions and Inheritance.
Overload Resolution and Inheritance.

20. The iostream Library.
The Output Operator<<.
Input.
Additional Input/Output Operators.
Overloading the Output Operator <<.
Overloading the Input Operator >>.
File Input and Output.
Condition States.
String Streams.
Format State.
A Strongly Typed Library.

Appendix: The IOStream Library.
accumulate().
adjacent_difference().
adjacent_find().
binary_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().
merge().
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. 0201824701T04062001


Back to Top