C++ Primer, 4/E
Stanley B. Lippman
Josée Lajoie
Barbara E. Moo

ISBN-10: 0201721481
ISBN-13: 9780201721485

Publisher: Addison-Wesley Professional
Copyright: 2005
Format: Paper; 912 pp
Published: 02/14/2005

Suggested retail price: $54.99
Buy from myPearsonStore



C++ Primer, Fourth Edition has been completely revised and rewritten to conform to today's C++ usage. Students new to C++ will find a clear and practically organized introduction to the language enhanced by numerous pedagogical aids. The fourth edition represents a complete restructuring and revision of the Primer. The authors’ motivation in this edition is to teach effective styles of modern C++ programming. To this end, they introduce the Standard Library and generic programming much earlier in the text. Many examples have been reformulated to take advantage of library facilities. Their focus is to show how to use the standard library abstractions rather than the low-level facilities built into the language.   They've also streamlined and reordered the presentation of language topics.  

Each chapter also contains a Summary section outlining the important topics covered in that chapter. Extensive forward and backward cross-references are provided to make it easier to follow the interrelationships among various features and concepts.   Occasional sidebar discussions are also provided to highlight important concepts, general advice or cautions. The authors have also incorporated a series of short sections that denote particularly important points, warn about common pitfalls, suggest good programming practices, and provide general usage tips.

A best-seller completely revised and rewritten to conform to today's C++ usage.

° A favorite choice for a first C++ book--greatly improved and updated for modern C++ programming.

° Reorganized to better address the novice audience, making it more approachable for non-C programmers.

° Features many new examples that are less advanced and more accessible to novices as well as experienced programmers--folks who already use C++ need this book too.

  • Reorganized to better address the novice audience, making it more approachable for non-C programmers.
  • Created many new examples that are less advanced and more accessible to novices as well as experienced programmers students who already use C++ can use this book too.
  • Added Barbara Moo as a co-author; she brings an understanding of how to teach modern C++ based on years of teaching and writing about C++.

Preface     xix

Chapter 1. Getting Started      1

1.1 Writing a Simple C++ Program    2
1.2 A First Look at Input/Output     5
1.3 A Word About Comments     10
1.4 Control Structures     11
1.5 Introducing Classes    20
1.6 The C++ Program    25
Chapter Summary    28
Defined Terms    28

Part I. The Basics    31

Chapter 2. Variables and Basic Types    33

2.1 Primitive Built-in Types    34
2.2 Literal Constants     37
2.3 Variables     43
2.4 const Qualifier    56
2.5 References    58
2.6 Typedef Names    61
2.7 Enumerations    62
2.8 Class Types     63
2.9 Writing Our Own Header Files    67
Chapter Summary    73
Defined Terms     73

Chapter 3. Library Types      77

3.1 Namespace using Declarations      78
3.2 Library string Type     80
3.3 Library vector Type      90
3.4 Introducing Iterators      95
3.4.1 Iterator Arithmetic      100
3.5 Library bitset Type      101
Chapter Summary      107
Defined Terms      107

Chapter 4. Arrays and Pointers 109

4.1 Arrays      110
4.2 Introducing Pointers      114
4.3 C-Style Character Strings      130
4.4 Multidimensioned Arrays      141
Chapter Summary      145
Defined Terms      145

Chapter 5. Expressions      147

5.1 Arithmetic Operators      149
5.2 Relational and Logical Operators      152
5.3 The Bitwise Operators      154
5.4 Assignment Operators      159
5.5 Increment and Decrement Operators      162
5.6 The Arrow Operator      164
5.7 The Conditional Operator      165
5.8 The size of Operator      167
5.9 Comma Operator      168
5.10 Evaluating Compound Expressions      168
5.11 The new and delete Expressions      174
5.12 Type Conversions      178
Chapter Summary      188
Defined Terms      188

Chapter 6. Statements      191

6.1 Simple Statements      192
6.2 Declaration Statements      193
6.3 Compound Statements (Blocks)      193
6.4 Statement Scope      194
6.5 The if Statement      195
6.5.1 The if Statement else Branch      197
6.6 The switch Statement      199
6.7 The whileStatement      204
6.8 The for Loop Statement      207
6.9 The do while Statement      210
6.10 The break Statement      212
6.11 The continue Statement      214
6.12 The goto Statement      214
6.13 try Blocks and Exception Handling      215
6.13.1 A throw Expression      216
6.13.2 The try Block      217
6.13.3 Standard Exceptions      219
6.14 Using the Preprocessor for Debugging      220
Chapter Summary      223
Defined Terms      223

Chapter 7. Functions      225

7.1 Defining a Function      226
7.2 Argument Passing      229
7.3 The return Statement      245
7.4 Function Declarations      251
7.5 Local Objects      254
7.6 Inline Functions      256
7.7 ClassMemberFunctions      258
7.8 Overloaded Functions      265
7.9 Pointers to Functions      276
Chapter Summary      280
Defined Terms      280

Chapter 8. The IO Library      283

8.1 An Object-Oriented Library      284
8.2 Condition States      287
8.3 Managing the Output Buffer      290
8.4 File Input and Output      293
8.5 String Streams      299
Chapter Summary      302
Defined Terms      302

Part II. Containers and Algorithms      303

Chapter 9. Sequential Containers      305

9.1 Defining a Sequential Container      307
9.2 Iterators andIteratorRanges      311
9.3 Sequence Container Operations      316
9.4 How a vector Grows      330
9.5 Deciding Which Container to Use      333
9.6 strings Revisited      335
9.7 Container Adaptors      348
Chapter Summary      353
Defined Terms      353

Chapter 10. Associative Containers      355

10.1 Preliminaries: the pair Type      356
10.2 Associative Containers      358
10.3 The map Type      360
10.4 The set Type      372
10.5 The multimap and multiset Types      375
10.6 Using Containers: Text-Query Program      379
Chapter Summary      388
Defined Terms      388

Chapter 11. Generic Algorithms      391

11.1 Overview      392
11.2 A First Look at the Algorithms      395
11.3 Revisiting Iterators      405
11.4 Structure of Generic Algorithms      419
11.5 Container-Specific Algorithms      421
Chapter Summary      424
Defined Terms      424

Part III. Classes and Data Abstraction      427

Chapter 12. Classes      429

12.1 Class Definitions and Declarations         430
12.2 The Implicit this Pointer         440
12.3 Class Scope         444
12.4 Constructors         451
12.5 Friends         465
12.6 static Class Members         467
Chapter Summary         473
Defined Terms         473

Chapter 13 Copy Control      475

13.1 The Copy Constructor         476
13.2 The Assignment Operator         482
13.3 The Destructor           484
13.4 A Message-Handling Example       486
13.5 Managing Pointer Members         492
Chapter Summary         502
Defined Terms         502

Chapter 14. Overloaded Operations and Conversions      505

14.1 Defining an Overloaded Operator         506
14.2 Input andOutputOperators         513
14.3 Arithmetic and Relational Operators         517
14.4 Assignment Operators        520
14.5 Subscript Operator         522
14.6 Member Access Operators         523
14.7 Increment and Decrement Operators        526
14.8 Call Operator and Function Objects         530
14.9 Conversions and Class Types         535
Chapter Summary         . 552
Defined Terms         552

Part IV. Object-Oriented and Generic Programming      555

Chapter 15. Object-Oriented Programming      557

15.1 OOP: An Overview         558
15.2 Defining Base and Derived Classes         560
15.3 Conversions and Inheritance         577
15.4 Constructors and Copy Control         580
15.5 Class Scope under Inheritance         590
15.6 Pure Virtual Functions         595
15.7 Containers and Inheritance         597
15.8 Handle Classes and Inheritance         598
15.9 Text Queries Revisited         607
Chapter Summary         621
Defined Terms         621

Chapter 16. Templates and Generic Programming      623

16.1 Template Definitions         624
16.2 Instantiation           636
16.3 Template Compilation Models       643
16.4 Class Template Members         647
16.5 A Generic Handle Class         666
16.6 Template Specializations         671
16.7 Overloading and Function Templates         679
Chapter Summary        683
Defined Terms         683

Part V. Advanced Topics      685

Chapter 17. Tools for Large Programs      687

17.1 Exception Handling         688
17.2 Namespaces           712
17.3 Multiple and Virtual Inheritance       731
Chapter Summary         748
Defined Terms         748

Chapter 18. Specialized Tools and Techniques      753

18.1 Optimizing Memory Allocation         754
18.2 Run-Time Type Identification         772
18.3 Pointer to Class Member         780
18.4 Nested Classes         786
18.5 Union: A Space-Saving Class         792
18.6 Local Classes         796
18.7 Inherently Nonportable Features         797
Chapter Summary         805
Defined Terms         805

Appendix A. The Library      809

A.1 Library Names and Headers         810
A.2 A Brief Tour of the Algorithms         811
A.3 The IO Library Revisited         825

Index      843

Stanley B. Lippman is Architect with the Visual C++ development team at Microsoft. Previously, he served as a Distinguished Consultant at the Jet Propulsion Laboratories (JPL). Stan spent more than twelve years at Bell Laboratories, where he worked with Bjarne Stroustrup on the original C++ implementation and the Foundation research project. After Bell Laboratories, Stan worked at Disney Feature Animation, originally as principal software engineer, then as software technical director on Fantasia 2000.

Josée Lajoie is a staff development analyst in the IBM Canada Laboratory C/C++ Compiler group, and is currently the chair of the core language working group for the ANSI/ISO C++ Standard Committee. In addition, she is a regular columnist on the evolution of the C++ Language Standard for the C++ Report..

Barbara E. Moo is an independent consultant with 20 years' experience in the software field. During her nearly 15 years at AT&T, she worked on one of the first commercial products ever written in C++, managed the company's first C++ compiler project, and directed the development of AT&T's award-winning WorldNet Internet service business.



0201721481AB01312005

"C++ Primer is well known as one of the best books for learning C++ and is useful for C++ programmers of all skill levels. This Fourth Edition not only keeps this tradition alive, it actually improves on it."
--Steve Vinoski, Chief Engineer, Product Innovation, IONA Technologies

"The Primer really brings this large and complex language down to size."
--Justin Shaw, Senior Member of Technical Staff, Electronic Programs Division, The Aerospace Corporation

"It not only gets novices up and running early, but gets them to do so using good programming practices."
--Nevin ":-)" Liber, Senior Principal Engineer (C++ developer since 1988)

This popular tutorial introduction to standard C++ has been completely updated, reorganized, and rewritten to help programmers learn the language faster and use it in a more modern, effective way.

Just as C++ has evolved since the last edition, so has the authors' approach to teaching it. They now introduce the C++ standard library from the beginning, giving readers the means to write useful programs without first having to master every language detail. Highlighting today's best practices, they show how to write programs that are safe, can be built quickly, and yet offer outstanding performance. Examples that take advantage of the library, and explain the features of C++, also show how to make the best use of the language. As in its previous editions, the book's authoritative discussion of fundamental C++ concepts and techniques makes it a valuable resource even for more experienced programmers.

Program Faster and More Effectively with This Rewritten Classic
  • Restructured for quicker learning, using the C++ standard library
  • Updated to teach the most current programming styles and program design techniques
  • Filled with new learning aids that emphasize important points, warn about common pitfalls, suggest good programming practices, and provide general usage tips
  • Complete with exercises that reinforce skills learned
  • Authoritative and comprehensive in its coverage

The source code for the book's extended examples is available on the Web at the address below.

www.awprofessional.com/cpp_primer

View a Sample Chapter PDF:

  • Instructor's Guide, 4/E
    Lippman, Lajoie & Moo
    © 2005 | Addison-Wesley Professional | Electronic Supplement; 100 pages | Instock
    ISBN-10: 0321394917 | ISBN-13: 9780321394910
    View Downloadable Files

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.


Copyright ©2009 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions