Various C++ Resources

This page last
updated on:

May 16, 2001

Contents and Related Links

CodeWrangler Pages

List Proc Info

CliffTeach List Proc

This list proc is meant to be an ongoing resource for students in my C++ courses (and anyone else interested in various C++ related discussions). To subscribe to the list proc, send e-mail to:

listproc@u.washington.edu

and in the body (not the subject line) of the e-mail message, put the following:

subscribe cliffteach <your full name>

Replace <your full name> with the name that you want to appear on e-mail messages.

To send e-mail to the list, use the address:

cliffteach@u.washington.edu

I have to approve all subscription requests, which usually takes me a day or two. Once I've approved your list subscription, any messages you send to the list will appear within a few minutes (I do not have to approve each message). Anyone is welcome to join, although if you're not in one of my classes, please send me a personal note as a way of introduction, and to make sure your subscription is appropriate for this list proc.

I don't automatically unsubscribe anyone, so please keep the instructions that are sent when you subscribe. I set up the list to be accumulative, and not class-by-class. The main reason is that there's a lot of common information that is useful for everyone, not just those in my current classes.

The appropriate type of traffic for this list includes C++ knowledge sharing, compiler tips / hints / problems, general software development topics, job announcements and contacts, class content and assignment discussions, and student introductions (particularly for the Distance Learning students). I don't mind a little bit of chit-chat now and then, but in general keep the "How's the weather in your city?" traffic to personal e-mail. And, as much as I like jokes, let's keep those out of the list unless they relate to software development and programming.

Seattle Design Patterns Discussion Group

Every 3-5 weeks a group meets in the Seattle area to discuss various design patterns and how to effectively use them. To sign up for the list proc, go to the following Web page:

http://SeattlePatterns.listbot.com/

Currently the outline for learning various design patterns is specified in the following Web page:

http://www.industriallogic.com/papers/learning.html

E-mail will be sent announcing each meeting with the pattern to be discussed and location and time. Except for alternatives in the summer, the usual meeting place and time is:

Third Place Books in the Lake Forest Park Town Centre, meeting at one of the tables in the general area between the food court and the book shelves. Directions and information about Third Place Books:

http://www.thirdplacebooks.com/

Unless specified otherwise, the group meets at 7 pm.

Online Resources

Online Books (or links related to printed books)

  • Bruce Eckels has an online edition of his Thinking in C++ book, second edition, (first volume of two is published in paper as of March 2000). The contents of both volumes are online and available for downloading at: http://www.bruceeckel.com/Books
  • Bjarne Stroustrup, the creator of C++, has his web pages (including errata) at: http://www.research.att.com/~bs/homepage.html
  • A very well-received book on the C++ standard library is written by Nicolai Josuttis (see the link in the Recommended Books section). His home page (which contains C++ source code): http://www.josuttis.com/
  • Scott Meyers is one of the most widely read and well known C++ authors. His home page: http://www.aristeia.com/

C++ FAQs, Online Discussions, and Periodicals

C++ Standard Documentation

  • The C++ standard, in electronic form (PDF file) can be purchased online from ANSI for a very reasonable price at: http://webstore.ansi.org/
  • An excellent reference and explanation page for the C++ standard library is at: http://www.dinkumware.com/refcpp.html
  • The Standard Template Library (STL, now part of C++ standard library) will be used, and an excellent Web site for both online tutorials and source downloading is at: http://www.sgi.com/tech/stl/

C++ Libraries and Free Compilers

Design Patterns

  • Some excellent design patterns presentations are available from NetObjectives: http://www.netobjectives.com/
  • Patterns are a design concept borrowed from Christopher Alexander (a building architect). A group of software developers were inspired by Alexander's books and began using the ideas to try to help improve and demystify the software design process. Two main goals:  1) Put specific language behind common design techniques; 2) Obtain design-level reuse. A good site for design patterns is at: http://hillside.net/patterns/patterns.html
  • Another good design patterns site (Douglas Schmidt is a well-known C++ and design patterns guru): http://www.cs.wustl.edu/~schmidt/patterns.html

Style, Design, and Documentation Tools

Highly Recommended Books

C++ Language and Programming (All Levels)

  • The C++ Programming Language, 3rd Ed., Bjarne Stroustrup, Addison Wesley, 1997, ISBN 0-201-88954-4. There is also a special hardback edition, with a few extra appendices (which are also available at his Web site): 2000, ISBN 0-201-70073-5. More information on this book can be found at: http://www.awl.com/cseng/
  • Thinking in C++, Vol 1 (2nd vol to be published in a year or two), Bruce Eckel, Prentice Hall Publishing, 2000, ISBN 0-13-979809-9. (This is a completely re-written and updated version of his 1995 Thinking in C++ textbook.) More information on this book can be found at: http://www.prenhall.com/divisions/ecs/cscat.html
  • Effective C++, 2nd Ed., Scott Meyers, Addison Wesley Professional Computing Series, 1997, ISBN 0-201-92488-9. More information on this book can be found at: http://www.awl.com/cseng/
  • C++ Primer, 3rd Ed., Stanley Lippman and Josee Lajoie, Addison Wesley Professional Computing Series, 1998, ISBN 0-201-82470-1. This edition has been rewritten with many examples and explanations of the standard C++ library as well as explanations of the core features of the language. More information on this book can be found at: http://www.awl.com/cseng/
  • C++ How to Program, 3rd Ed., Harvey M. Deitel and Paul J. Deitel, Prentice Hall, 2001, ISBN 0-13-089572-5. This book assumes no C++ knowledge and very little software development experience in object-oriented programming. More information on this book can be found at: http://www.prenhall.com/divisions/ecs/cscat.html

C++ Language and Programming (Intermediate and Advanced)

  • The C++ Standard Library: A Tutorial and Reference, Nicolai Josuttis, Addison Wesley, 1999, ISBN 0-201-37926-0. More information on this book can be found at: http://www.awl.com/cseng/
  • More Effective C++, Scott Meyers, Addison Wesley Professional Computing Series, 1996, ISBN 0-201-63371-X. More information on this book can be found at: http://www.awl.com/cseng/
  • Effective STL, Scott Meyers, Addison Wesley Professional Computing Series, 2001, ISBN 0-201-74962-9 (due to be published in June of 2001). More information on this book can be found at: http://www.awl.com/cseng/
  • Generic Programming and the STL, Matthew Austern, Addison Wesley, 1999, ISBN 0-201-30956-4. More information on this book can be found at: http://www.awl.com/cseng/
  • STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library, David R. Musser, Gillmer J. Derge and Atul Saini, Addison Wesley, 2001, ISBN 0-201-37923-6. More information on this book can be found at: http://www.awl.com/cseng/
  • Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Exception-Safety Solutions.,  Herb Sutter, Addison Wesley, 2000, ISBN 0-201-61562-2. More information on this book can be found at: http://www.awl.com/cseng/
  • Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference,  Angelika Langer and Klaus Kreft, Addison Wesley, 2000, ISBN 0-201-18395-1. More information on this book can be found at: http://www.awl.com/cseng/
  • Large-Scale C++ Software Design, John Lakos, Addison Wesley, 1996, ISBN 0-201-63362-0. More information on this book can be found at: http://www.awl.com/cseng/
  • Efficient C++: Performance Programming Techniques, Dov Bulka and David Mayhew, Addison Wesley, 2000, ISBN 0-201-37950-3. More information on this book can be found at: http://www.awl.com/cseng/
  • The Design and Evolution of C++, Bjarne Stroustrup, Addison Wesley, 1994, ISBN 0-201-54330-3. More information on this book can be found at: http://www.awl.com/cseng/

Object-Oriented Design, Generative Programming, and Design Patterns

  • Modern C++ Design: Generic Programming and Design Patterns Applied, Andrei Alexandrescu, 2001, ISBN 0-201-70431-5. More information on this book can be found at: http://www.awl.com/cseng/
  • Multi-Paradigm Design for C++, James Coplien, 1999, ISBN 0-201-82467-1. More information on this book can be found at: http://www.awl.com/cseng/
  • Generative Programming: Methods, Tools, and Applications, Krysztof Czarnecki and Ulrich Eisenecker, 2000, ISBN 0-201-30977-7. More information on this book can be found at: http://www.awl.com/cseng/
  • UML Distilled, Second Edition: A Brief Guide to the Standard Object Modeling Language, Martin Fowler and Kendall Scott, Addison Wesley, 2000, ISBN 0-201-65783-X. More information on this book can be found at: http://www.awl.com/cseng/
  • Beginning Object-Oriented Analysis and Design with C++, Jesse Liberty, Wrox Press, 1998, ISBN 1-861001339. More information on this book can be found at: http://www.wrox.com/
  • Pattern Hatching, John Vlissides, Addison Wesley, 1998, ISBN 0-201-43293-5. More information on this book can be found at: http://www.awl.com/cseng/
  • Object-Oriented Analysis and Design with Applications, 2nd Ed., Grady Booch, Addison Wesley, 1994, ISBN 0-8053-5340-2. More information on this book can be found at: http://www.awl.com/cseng/
  • Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison Wesley, 1995, ISBN 0-201-63361-2. More information on this book can be found at: http://www.awl.com/cseng/ and the source code can be found at: http://hillside.net/patterns/DPBook/Source.html

This page constructed by Cliff Green, Copyright © 2001.