The World Wide Web
The web is an incredible resource for C++ Programmers. Here are some
useful resources available on the web (this is by no means a complete list!)
The following is an attempt at a C++ bibliography. Given the
pace of change in the C++ book publishing field, it cannot hope
to claim that things are up to date, but it will at least give
some idea of what is available.
The Major Books on C++
Here is a list of the books on C++, by the inventor of
- The C++ Programming Language, Third Edition,
Bjarne Stroustrup, Addison-Wesley, 1997.
This is the authoritative book on C++.
There was a first edition, and a second edition, but they're totally out of date
now and pretty much useless, so buy the latest edition. This book is notorious for being very hard
to read and understand. It is a very hard slog to read
this book, and the density of information is extremely
high. I strongly recommend that you find an easier way to
learn the language from scratch than to learn it from this book, but if
you want to become a C++ expert, eventually you probably should get a copy
and read it thoroughly.
- The Annotated C++ Reference Manual,
Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley,
The 'ARM' -- the base document for the ANSI C++
committee. The annotations present in this (but not in The
C++ Programming Language, Second Edition) are
virtually indispensible for serious C++ programmers. This
is a guide to some of the darkest corners of the C++
language. The C++ Programming Language
is more up to date, but the annotations are
worth your buying both. Unfortunately, this book is now more than
10 years old, and appears not to have been updated recently, which
is a shame.
- The Design and Evolution of C++,
Bjarne Stroustrup, Addison-Wesley, 1994.
This is a more recent book by the inventor of the C++
language. It discusses, in some detail, the history of
the language, and why certain decisions were made about
what features were included, why, and how (and also why
other features were not included). The book adds useful insight for someone who already has a pretty good
knowledge of C++. Unfortunately, it, too, appears not to have been
updated recently, which is again a shame.
Here is a list of some of the other books I have come across
Note: This list is a little out of date. There are so many C++
books, that it's virtually impossible to keep up to date with them all.
- C++ Primer,
Stanley B. Lippman & Josée Lajoie, Addison-Wesley.
One of the most popular tutorial books on C++, by someone
directly involved in the development of the AT&T Bell
Labs C++ compiler (SBL), and someone who was heavily involved with the
C++ standardization process (JL).
- Advanced C++: Programming Styles and Idioms,
James O. Coplien, Addison-Wesley, 1992.
A highly acclaimed book on advanced C++ by
another Bell Labs person. When it says 'advanced', it
- Effective C++: 50 Specific Ways to Improve
Your Programs and Designs, Scott
Meyers, Addison-Wesley, 1992.
A recent, highly acclaimed book giving some very useful
and practical advice on C++.
- C++ Strategies and Tactics, Robert
B. Murray, Addison-Wesley, 1993
A very good book that discusses real-world implications
and practices in the use of C++.
- C++ Programming Style, Tom
Cargill, Addison-Wesley, 1992
A highly acclaimed book.
- Using C++, Bruce Eckel,
A popular tutorial on C++.
- Programming in C++,
Stephen C. Dewhurst and Kathy T. Stark, Prentice-Hall,
Another popular tutorial on C++ from some Bell Labs
- The Waite Group's C++ Primer Plus: Teach
Yourself Object-Oriented Programming,
Stephen Prata, Waite Group Press, 1991.
A very accessible, graphically interesting tutorial on
- Object-Oriented Programming in C++,
Naba Barkakati, SAMS/Macmillan, 1991.
This book does a better than average job of teaching C++
from a more object-oriented perspective, without covering
a lot of C stuff first.
- Data Abstraction and Object-Oriented
Programming in C++, Keith E. Gorlen,
Sanford M. Orlow, Perry S. Plexico, Wiley, 1990.
A book that attempts to teach C++ with emphasis on how it
implements software engineering ideas like data
abstraction. It is written by the authors of the NIH
(National Institutes of Health) class library.
Unfortunately you tend to get overwhelmed with learning
C++ and the NIH class library concepts simultaneously.
Definitely worth some study, but probably not the best
vehicle for learning C++ from scratch.
- Developing C++ Software,
Russel Winder, Wiley, 1991.
A C++ tutorial with more emphasis than normal on
abstraction, leading to good discussions of OO concepts.
- Teach Yourself C++, Al
Stevens, MIS Press, 1990.
A very accessible tutorial on C++.
- C++: An Introduction for Experienced
Programmers, Rex Jaeschke, CBM
A book that attempts to bring the experienced C
programmer up to speed on C++.
- Class Construction in C and C++:
Object-Oriented Programming Fundamentals,
Roger Sessions, Prentice-Hall, 1992.
A book that deals with C++ (and C) programming at a
higher level than most, and offers practical advice on
how to construct OO programs.
- C++ Programming and Fundamental Concepts,
Arthur E. Anderson and William J. Heinze, Prentice-Hall,
A promising C++ tutorial.
- Turbo C++ DiskTutor, Second Edition,
Greg Voss and Paul Chui, Osborne/ McGraw-Hill, 1991.
A useful object-oriented C++ tutorial with class library
- Object-Oriented Programming with C++ and
OSF/Motif, Douglas A. Young,
A book that gives very good insight into how to use C++
features to approach Motif programming from an
object-oriented perspective. Very useful, not only for
implementing Motif applications, but also for
understanding the tradeoffs and ideas involved in
- Object-Oriented Program Design with Examples
in C++, Mark Mullin, Addison-Wesley,
Quite a useful book, providing a practical approach to OO
design, and examples using C++.
- C/C++ for Expert Systems,
David Hu, MIS Press, 1989.
- Object-Oriented Environment in C++: A
User-Friendly Interface, David Hu,
MIS Press, 1990.
- User Interfaces in C++ and Object-Oriented
Programming, Mark Goodwin, MIS
- Turbo C++: A Self-Teaching Guide,
Bryan Flamig, Wiley, 1991.
- Object-Oriented Programming with Turbo C++,
Keith Weiskamp, Loren Heiny, Bryan Flamig, Wiley, 1991.
- Power Graphics using Turbo C++,
Keith Weiskamp, Loren Heiny, Wiley, 1991.
- Learning C++, Tom Swan, SAMS/Macmillan, 1991.
- C++ For Programmers,
Leendert Ammeral, Wiley, 1991.
- Reusability and Software Construction: C and
C++, Jerry D Smith, Wiley, 1990.
Books on Object-Oriented Analysis, Design and Programming
Here is a list of some of the books on the more general topics
of OOA, OOD and OOP:
- Object-Oriented Design with Applications,
Grady Booch, Benjamin/Cummins, 1991.
A recent book that has received nothing short of rave
reviews. Already a classic in the field of OOD, and a
must-read for any serious OO programmer/designer.
- Object-Oriented Modelling and Design,
James Rumbaugh, Michael Blaha, William Premerlani,
Frederick Eddy and William Lorensen, Prentice-Hall, 1991.
Highly acclaimed book from a group of workers at General
- Object-Oriented Analysis,
Peter Coad and Edward Yourdon, Yourdon Press/
The first in the Coad/Yourdon series on OOA/D/P.
- Object-Oriented Design,
Peter Coad and Edward Yourdon, Yourdon Press/
- Object-Oriented Programming,
Peter Coad and Jill Nicola, Yourdon Press/ Prentice-Hall,
- Object-Oriented Information Systems: Planning
and Implementation, David A. Taylor,
High-level, useful discussion of the impact of OO systems
oriented towards managers.
- Object-Oriented Programming: An Evolutionary
Approach, Brad J. Cox,
A classic book on OOP, which also discusses the
Objective-C language, by its inventor.
- Object-Oriented Software Construction,
Bertrand Meyer, Prentice-Hall, 1988.
A classic book on OOP, which also discusses the Eiffel
language, by its inventor. Rather matehematical/theoretical, but authoritative and
- Object-Oriented Systems Analysis: Modelling
the World in Data, Sally Schlaer and
Stephen J. Mellor, Yourdon Press/Prentice-Hall, 1988.
The two books by Schaer and Mellor have been very
influential in OOA/OOD.
- Object Lifecycles: Modelling the World in
States, Sally Schlaer and Stephen J.
Mellor, Yourdon Press/Prentice-Hall, 19??
- Designing Object-Oriented Software,
Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener,
A discussion of OOD with emphasis on
- Object Orientation: Concepts, Languages,
Databases, User Interfaces, Setrag
Khoshafian and Razmik Abnous, Wiley, 1990.
Broad-ranging and fairly deep discussion of many aspects
- Readings in Object-Oriented Database Systems,
edited by Stanley B. Zdonik and David Maier, Morgan
Even though it says 'Readings in Object-Oriented Database
Systems', this collection contains many of the seminal
papers on general object-orientation, so it is worth
study even if you don't think you care about OODBMSs.
- Software Engineering with Ada, Second Edition,
Grady Booch, Benjamin/Cummins, 1987.
While not strictly on object-oriented programming, this
book contains some of the best discussions of the
principles of Software Engineering, and the motivations
behind them. While the original Ada was not an
object-oriented language, it is an object-based
language, and the latest version of the Ada specification
has added inheritance, which makes it an object-oriented
There are many journals and computer magazines that publish
articles on C++, Object-Oriented Programming and related
subjects. Here are some of them:
- The Journal of Object-Oriented Programming (no longer
published; click here
for an archive of articles)
- The C/C++ Users Journal,
R&D Publications, Inc., 1601 W. 23rd St., Suite 200,
Lawrence, Kansas 66046
- Dr Dobb's Journal, Miller
Freeman, Inc., 411 Borel Ave., San Mateo, California