Some C++ books are not just good; they're the definitive works, the books ''everyone'' refers people to. Some of them are: * BjarneStroustrup, ''TheCeePlusPlusProgrammingLanguage''. The Book, written by The Man. Considered not an easy read by some who, let's face it, probably shouldn't be programmers. The third edition describes standard C++ as defined in ISO/IEC 14882 (Standard for the C++ Programming Language). The Special Edition is the 3rd edition plus errata, appendicies on locales, StandardTemplateLibrary exception safety, and a hard cover. * Lippman and Lajoie, ''The C++ Primer'' (ISBN 0-201-82470-1). The most commonly recommended introduction to C++. The third edition describes the ANSI/ISO draft standard. : ''I learned C++ from the second edition of this book. I was really looking forward for the third edition describing the ANSI standard but I found it a huge disappointment. It's rather large (but so is the language) and lacks structure. What really ruins it is the horribly bad index.'' (Anyone else worried about a twelve hundred page primer? Lippman may be; his more recent book, ''Essential C++'' (EssentialCpp) (ISBN 0201485184) is only 304 pages. -- PaulChisholm) (The fourth edition of ''The C++ Primer'' is now available, adding BarbaraMoo as coauthor. It is significantly shorter than the third edition (about 900 pages) and is completely rewritten, reorganized, and reindexed.) * AndrewKoenig & BarbaraMoo's ''Accelerated C++'' (ISBN 0-201-70353-X) may overtake this Lippman eventually. "The first part, through Chapter 7, concentrates on programs that use standard-library abstractions. The second part, starting with Chapter 8, talks about defining your own abstractions". I had good success handing this book to juniors who had some programming under their belt already. : ''I agree, this book has a steep learning curve so you have to go slower (and support works from the net are a great help), but overall this book is excellent at getting you started with good C++ (not C and '''then''' C++, but it starts with pure C++ right from the beginning) coding technique and style.'' * Deitel and Deitel, ''C++: How to Program'' (ISBN 0135289106). A college textbook, presuming no previous programming experience. Describes the draft standard language, but mostly uses the circa-1991 dialect. I've heard many good things about this book. -- PaulChisholm (Paul S. Wang's ''Standard C++ With Object-Oriented Programming'' (ISBN 0534371310) may have supplanted the Deitels' book. -- PaulChisholm) * ScottMeyers, ''EffectiveCeePlusPlus'' * ScottMeyers, ''MoreEffectiveCeePlusPlus'' (ISBN 0-201-63371-X) The most commonly recommended "second book to read" and its sequel. * ScottMeyers, ''Effective C++ CD'' (ISBN 0201310155) contains the text to both books. It's not paper, but it's cheaper than either of the individual volumes, has additional material, and is searchable. See http://slashdot.org/books/99/02/01/102246.shtml for a review. ''See also below for another Meyers book, likely to soon be considered definitive.'' * AndreiAlexandrescu ''ModernCeePlusPlusDesign: Generic Programming and Design Patterns Applied'', one of the best books dealing with some of the hardest problems of C++''-ing'' * Austern, ''Generic Programming and the STL'' (ISBN 0-201-30956-4). '''Finally''', an excellent book on the containers, iterators, and algorithms in the Standard C++ Library. You need some exposure to the STL classes before reading Austern; Lippman and Lajoie, or Deitel and Dietel, or Stroustrup (all above) should do fine. * Angelika Langer, Klaus Kreft, ''Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference''. Addison-Wesley, 2000, Hardcover, 672 pages, ISBN 0-201-18395-1. The long-awaited definitive replacement for Teale's book (which was about the "old" iostreams). * JohnLakos, ''LargeScaleCppSoftwareDesign''. Addison-Wesley, 1996, 846 p. You need this for larger C++ projects. ''[2002.07.03] This book is somewhat dated - for instance, modern techniques for implementing assignment are superior to the approach Lakos took. -- DanilSuits'' * Ellis and Stroustrup, ''TheAnnotatedCppReferenceManual''. A.k.a. "the ARM". A bit dated, but at its time the definitive book for when you think you know how part of C++ works but aren't sure. * BjarneStroustrup, ''TheDesignAndEvolutionOfCpp''. You can consider this Stroustrup's apology, or the argument for the defense. If you've every wondered '''why''' a certain C++ feature was designed a certain way, you'll find Stroustrup's explanation here, along with how else it could have been done and why it wasn't. Chock full of patterns, as is the ARM (though not in a very accessible form in either case). Should be required for people who want to argue the merits of the languages design. Not for everyone. * JimCoplien, ''AdvancedCeePlusPlusProgrammingStylesAndIdioms''. An excellent complement to Meyers's Effective C++. C++ has grown a lot since this book was published but I suspect everything in it is still relevant and useful. -- CurtisBartley ''Not necessarily, since JimCoplien was deliberately trying to push the edge of the C++ envelope, circa 1991 (cfront 2.0). His "canonical form" for C++ value types is still definitive.'' -- PaulChisholm (later) I just got Cope's latest, ''Multi-Paradigm Design for C++'' (ISBN 0-201-82467-1). I can't swear it's "definitive," but it seems like a great ''design'' (and analysis) book for C++ programmers. (As the title implies, it's not ''just'' about object-oriented design.) -- PaulChisholm (see MultiParadigmDesign) * Steve Oualline's ''Practical C++ Programming'' (O'Reilly, 1995, 557 pp.) (ISBN 1-56592-139-9) ''Maybe a good book, but I wouldn't consider it definitive. -- PaulChisholm'' ''I wouldn't even consider it a good book. -- JamesDennett'' * PeteBecker's "The C++ Standard Library Extensions" -- currently the only book on TR1, and certainly a good one. * RobertMartin's ''DesigningOoCppAppsUsingBooch'', Prentice Hall * AndrewKoenig & BarbaraMoo's ''RuminationsOnCeePlusPlus''. Care and feeding of objects, especially the many simple ones a program must use for currency. * MarshallCline, GregLomow & MikeGirou ''C++ FAQs'', [ISBN: 0-201-30983-1]. ''This book helped me understand something I couldn't find anywhere else. Here it is:'' PureVirtualFunctionCalled. * DavidVandevoorde & NicolaiJosuttis ''CppTemplatesTheCompleteGuide''. Everything you could ever want to know about templates, from the simplest usage to complex metaprogramming. ---- Formerly definitive: Musser and Saini, ''STL Tutorial and Reference Guide'' (ISBN 0-201-63398-1) One of the earliest books on the Standard Template Library; now seriously out-of-date (and outclassed by Austern; see below). ''I have to say this one didn't impress me at all. I get a lot more out of Stroustrup's stdlib musings in his 3rd edition "the language" book above. But maybe Musser and Saini will soon bring out another edition that covers the ground a little better. I really wish there was a decent alternative here.''--PeterMerel The second edition is out [ISBN: 0-201-37923-6], and may be better; see http://brian.accu.org/bookreviews/public/reviews/s/s002346.htm for a review. What might have been hoped to be definitive (''The C++ Standard Template Library'' by PjPlauger, AlexanderStepanov, Lee, and Musser [ISBN: 0-13-437633-1]) has received at least one negative review (http://brian.accu.org/bookreviews/public/reviews/cp/cp002312.htm). ScottMeyers has another book out: ''EffectiveStl'', which is highly recommended in its ACCU review (http://www.accu.org/bookreviews/public/reviews/e/e002375.htm); it may well join the definitive list. The definitive STL book is Austern's; see above. ---- (I'm still looking for the "definitive" books for novice and experienced C++ programmers who want to learn VisualCeePlusPlus and MicrosoftFoundationClasses. Maybe they don't exist. I'd rather not need to know, but there it is.... -- PaulChisholm) ''Beginning VC++'' is pretty good for novice/intermediate level programmers. It has a first half dedicated to C++ (very good) and a second half dedicated to MFC. This is a tutorial covering many subjects, and not a reference book. -- DCO ''Just download all the source from all the VC++ books at http://www.wrox.com and screw around with it. If you actually try to learn C++ (and computer programming) at the same time as you learn MFC and Win32 SDK, after taking a gun and blowing your own brains out you might as well read one of those little red menaces to get the text between the code samples. -- PhlIp (obviously)'' I've also heard good things about Prosise's ''Programming Windows 95 with MFC'' (ISBN 1556159021). I think I prefer Krugilinksi. (The lastest edition, for MSVC++6, has a new title, and some co-authors.) Hart's ''Win32 System Programming'' (ISBN 0-201-63465-1) is a very good Win32 book for Unix programmers doing non-GUI Windows development. -- PaulChisholm Check out http://www.relisoft.com for the best tutorials on applying C++ to Win 32 I've ever seen. They're not in print yet, but organized in chapters. So calling them a book is maybe not stretching it too far? -- SyverEnstad ---- Most C++ books assume you're very familiar with C, but completely new to objects. I haven't found a superb book for people who are in the opposite situation. I liked Steve Oualline's ''Practical C++ Programming'' (O'Reilly, 1995, 557 pp.) (ISBN 1-56592-139-9) better than the Lippman/Lajoie primer that's most commonly recommended. Oualline is full of useful tables like "The meanings of static" (5 possible meanings; can you list them off the top of your head?) that warn about obscure features of the language. It does introduce objects far too late. (''Probably because this book shares a lot of content with his ''Practical C Programming''. I must say, I've been underwhelmed by this book. Maybe I'm unique in this.... -- PhilGroce'') P.S. See CppStaticRiddle for the answer. -- BetsyHanesPerry ---- Can anyone recommend books that concentrate on documenting and using the standard C++ library? (Rather than concentrating on the details of the language itself.) Perhaps Josuttis's ''TheCppStandardLibrary : A Tutorial and Reference'' (ISBN 0201379260)? Stroustrup and Koenig are writing a follow-up to the ARM for the '''language''', but not the '''library'''. It's an altogether sad state of affairs. -- PaulChisholm See also above for books on the part of the language formerly known as the StandardTemplateLibrary. ---- ''C++ Gems'' - A collection of articles from the CppReport. The authors of ''C++ Gems'' include: * BjarneStroustrup (Father of C++) * DougLea (Author of GnuCpp Lib) * DougSchmidt (Author of ACE, a distributed computing lib) * JimCoplien (Wrote ''AdvancedCeePlusPlusProgrammingStylesAndIdioms'', another excellent book, but somewhat dated) * JohnVlissides (One of the authors of the DesignPatternsBook) * AndrewKoenig (Darn it, I've read his articles, I like what he writes, but I'm afraid I don't know what he's done! Most people know his name...) * Josee Lajoie (Chair of some CppStandard''''''s subcommittee.) * Stephen Clamage (Chair of the C++ Standards Committee) * Todd Veldhuizen (Author of the BlitzPlusPlus lib. Makes heavy use of template meta-programming) * Barton and Nackman (Authors of ''Scientific and Engineering C++'', another book I would recommend. ''Inventors of Fallible<>, a class worth its weight in gold.'') The material is somewhat advanced. If you are comfortable with C++, this is a good way to get to the next level. -- ScottDe ---- I am surprised no one mentioned ''Exceptional C++'' (ExceptionalCpp) (ISBN 0-201-61562-2) by HerbSutter. The sections on exception safe code are extremely valuable. -- ShalomReich This book is a real eye opener, and, yes, the whole section about "exception-safe" and "exception-neutral" code is invaluable. -- ElizabethWiethoff I just read through his article on exceptions in the Aug 2004 issue of ''C/C++ Users Journal'', quite nice, I must say. -- AnonymousDonor The sequel, ''More Exceptional C++'' (ISBN 0-201-70434-X) is also informative, with emphases on the Standard Library and multi-threaded issues. These books are primarily based on the programming problems raised in Sutter's ''Guru of the Week'' (http://www.gotw.ca/). A third book in the series is on its way: ''Exceptional C++ Style'' (ExceptionalCppStyle) (ISBN: 0-201-76042-8). -- ElizabethWiethoff Another addition by HerbSutter (with AndreiAlexandrescu) is ''CppCodingStandards''. Chuck Allison writes "When the authors of this book speak, the C++ community listens, but together they have outdone themselves, and you and I are the happy beneficiaries". Also, "More than just style guidelines and 'gotcha' warnings, ''C++ Coding Standards'' clarifies the idioms and practices that pertain specifically to successful C++ software." There doesn't seem to be too many good 'coding standards' books, especially for C++. It may well become the definitive book on the topic. -- Tabrez Iqbal All the books in this section are in the CppInDepthSeries. ---- OK, so how about a book for people who (1) understand O-O programming, (2) know C, and (3) have a basic, partial understanding of C++ syntax? Something like "C++ for Java programmers" might even fit the bill. ''AndrewKoenig & BarbaraMoo's ''Accelerated C++'' (see above) or maybe ScottMeyers' ''Effective'' books (also see above).'' I believe FrancisGlassborow announced he was writing a book about learning C++ as a second language, which I think was broken up by chapter depending on your first language. I have no idea if this project is anywhere near fruition, however. ---- See also IwannaLearnCeePlusPlus for some not necessarily definitive books which are generally for novice C++ programmers. http://accu.org/ contains book reviews for many books on C++ and other computer related subjects, some of which are definitive. Others, quite the opposite... ---- CategoryDefinitiveBooks CategoryBooks CategoryCpp