ISBN-10:
0201514591
ISBN-13:
9780201514599
Pub. Date:
01/15/1990
Publisher:
Addison-Wesley
The Annotated C++ Reference Manual / Edition 1

The Annotated C++ Reference Manual / Edition 1

by Margaret A. Ellis, Bjarne Stroustrup

Paperback

Current price is , Original price is $59.95. You

Temporarily Out of Stock Online

Please check back later for updated availability.

This item is available online through Marketplace sellers.

Product Details

ISBN-13: 9780201514599
Publisher: Addison-Wesley
Publication date: 01/15/1990
Edition description: New Edition
Pages: 480
Product dimensions: 6.14(w) x 9.05(h) x 0.70(d)

About the Author

About Margaret A. Ellis has worked for AT&T Bell Laboratories, UNIX System Laboratories, and Novell in compiler development. Ellis received a masters of science degree in computer science from the University of California. She is the coauthor of The Annotated C++ Reference Manual.

Bjarne Stroustrup is the designer and original implementer of C++, the author of The C++ Programming Language, The Annotated C++ Reference Manual, and The Design and Evolution of C++, and the consulting editor of Addison-Wesley's C++ In-Depth Series. Having previously worked at Bell Labs and AT&T Labs-Research, he currently is the College of Engineering Chair in Computer Science Professor at Texas A&M University. The recipient of numerous honors, including the Dr. Dobb's Excellence in Programming Award (2008), Dr. Stroustrup is a member of the National Academy of Engineering, an AT&T Fellow, an AT&T Bell Laboratories Fellow, an IEEE Fellow, and an ACM Fellow. His research interests include distributed systems, simulation, design, programming techniques, software development tools, and programming languages, and he remains actively involved in the ANSI/ISO standardization of C++. Dr. Stroustrup holds an advanced degree from the University of Aarhus in his native Denmark and a Ph.D. in Computer Science from Cambridge University, England.

Read an Excerpt

This book provides a complete language reference for the expert C++ user. It consists of the C++ reference manual plus annotations and commentary sections.

The C++ reference manual alone provides a complete definition of C++, but the terse reference manual style leaves many reasonable questions unanswered. Discussions of what is not in the language, why certain features are defined as they are, and how one might implement some particular feature have no place in a reference manual but are nevertheless of interest to most users. Such discussions are presented as annotations and in the commentary sections.

The commentary also helps the reader appreciate the relationships among different parts of the language and emphasizes points and implications that might have been overlooked in the reference manual itself. Examples and comparisons with C also make this book more approachable than the bare reference manual.

This book does not provide information about standard libraries beyond discussion of the library functions providing the most basic run-time support nor does it discuss C++ programming styles or techniques. Furthermore, this book does not attempt to teach C++ programming; it explains what the language is—not how to use it.

The index and the cross references embedded in the commentary and in the reference manual itself are important and integral parts of the book.

We hope that this reference manual will provide a firm base for further evolution of C++. It has been chosen by ANSI to serve as a starting point for the formal standardization of C++.

Margaret A. Ellis Bjarne Stroustrup Murray Hill, New Jersey

0201514591P04062001

Table of Contents

Preface.

1. Introduction.

Overview.

Syntax Notation.

Evolution of C++.

Acknowledgements.

2. Lexical Conventions.

Tokens.

Comments.

Identifiers.

Keywords.

Literals.

Implementation Dependencies.

3. Basic Concepts.

Declarations and Definitions.

Scopes.

Program and Linkage.

Start and Termination.

Storage Classes.

Types.

Lvalues.

Name Spaces.

Numerical Limits.

4. Standard Conversions.

Integral Promotions.

Integral Conversions.

Float and Double.

Floating and Integral.

Arithmetic Conversions.

Pointer Conversions.

Reference Conversions.

Pointers to Members.

Arithmetic Conversions.

5. Expressions.

Primary Expressions.

Postfix Expressions.

Unary Operators.

Explicit Type Conversion.

Pointer-to-Member Operators.

Multiplicative Operators.

Additive Operators.

Shift Operators.

Relational Operators.

Equality Operators.

Bitwise AND Operator.

Bitwise Exclusive OR Operator.

Bitwise Inclusive OR Operator.

Logical AND Operator.

Logical OR Operator.

Conditional Operator.

Assignment Operators.

Comma Operator.

Constant Expressions.

6. Statements.

Labeled Statement.

Expression Statement.

Compound Statement, or Block.

Selection Statements.

Iteration Statements.

Jump Statements.

Declaration Statement.

Ambiguity Resolution.

7. Declarations.

Specifiers.

Enumeration Declarations.

Asm Declarations.

Linkage Specifications.

Linkage Specifications.

Type-safe Linkage.

Limitations.

8. Declarators.

Type Names

Meaning of Declarators.

Function Definitions.

Initializers.

Pointers to Members.

9. Classes.

Class Names.

Class Members.

Member Functions.

Static Members.

Unions.

Bit-Fields.

Nested Class Declarations.

Local Class Declarations.

Local Type Names.

Interfaces.

10. Derived Classes.

Multiple Base Classes.

Virtual Functions.

Abstract Classes.

Summary of Scope Rules.

Single Inheritance.

Multiple Inheritance.

Multiple Inheritance and Casting.

Multiple Inheritance and Implicit Conversion.

Virtual Base Classes.

Virtual Base Classes and Casting.

Single Inheritance and Virtual Functions.

Multiple Inheritance and Virtual Functions.

Instantiation of Virtual Functions.

Virtual Base Classes with Virtual Functions.

Renaming.

11. Member Access Control.

Access Specifiers.

Access Specifiers for Base Classes.

Access Declarations.

Friends.

Protected Member Access.

Access to Virtual Functions.

Multiple Access.

General Ideas.

Per Class Protection.

Access Control.

12. Special Member Functions.

Constructors.

Temporary Objects.

Conversions.

Destructors.

Free Store.

Initialization.

Constructors and Destructors.

Copying Class Objects.

Temporary Elimination.

Access Control and Special Functions.

Summary of Member, Friend, and Special Functions.

13. Overloading.

Declaration Matching.

Argument Matching.

Address of Overload Function.

Overloaded Operators.

14. Templates.

Templates.

Class Templates.

Type Equivalence.

Function Templates.

Declarations and Definitions.

Member Function Templates.

Friends.

Static Members and Variables.

15. Exception Handling.

Exception Handling.

Throwing an Exception.

Constructors and Destructors.

Handling and Exception.

Exception Specifications.

Special Functions.

Exceptions and Access.

16. Preprocessing.

Phases of Preprocessing.

Trigraph Sequences.

Macro Definition and Expansion.

File Inclusion.

Conditional Compilation.

Line Control.

Error Directive.

Pragmas.

Null Directive.

Predefined Names.

C++ Constructs versus #define.

Compatibility.

Classic C Preprocessing.

17. Grammar Summary.

Keywords.

Expressions.

Declarations.

Declarators.

Class.

Statements.

Preprocessor.

Templates.

Exception.

18. Compatibility.

Extensions.

C++ and ANSI C.

Anachronisms.

ANSI/ISO Resolutions.

Index. 0201514591T04062001

Preface

This book provides a complete language reference for the expert C++ user. It consists of the C++ reference manual plus annotations and commentary sections.

The C++ reference manual alone provides a complete definition of C++, but the terse reference manual style leaves many reasonable questions unanswered. Discussions of what is not in the language, why certain features are defined as they are, and how one might implement some particular feature have no place in a reference manual but are nevertheless of interest to most users. Such discussions are presented as annotations and in the commentary sections.

The commentary also helps the reader appreciate the relationships among different parts of the language and emphasizes points and implications that might have been overlooked in the reference manual itself. Examples and comparisons with C also make this book more approachable than the bare reference manual.

This book does not provide information about standard libraries beyond discussion of the library functions providing the most basic run-time support nor does it discuss C++ programming styles or techniques. Furthermore, this book does not attempt to teach C++ programming; it explains what the language is--not how to use it.

The index and the cross references embedded in the commentary and in the reference manual itself are important and integral parts of the book.

We hope that this reference manual will provide a firm base for further evolution of C++. It has been chosen by ANSI to serve as a starting point for the formal standardization of C++.

Margaret A. Ellis
Bjarne Stroustrup
Murray Hill, New Jersey

0201514591P04062001

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews

The Annotated C++ Reference Manual 3.5 out of 5 based on 0 ratings. 2 reviews.
nillacat on LibraryThing More than 1 year ago
This was very useful when it was published, but I don't know if I'd use it now if I were a practicing C programmer: the language has changed, and the STL and template (meta)programming are the current techniques worth knowing.
Guest More than 1 year ago
Anyone who plans on doing serious C/C++ programming should own a copy of this book. Along with the K&R's C Programming Language, this is probably the bulwark of any reference library. Sometimes, there is just no substitute for knowing how something actually works. Absolutely crucial for answering tough questions that get glossed over in teaching books. This is a reference manual, and not a dummy's guide to programming in 15 days in type of book. Its great to get in-depth info on a subject, but not really something you read end to end.