With regard to C++ books, I'll just echo the advice [here](http://groups.yahoo.com/group/c-prog/message/37324) . The following books are recommended; read them in mostly the order listed. "[Accelerated C++](http://www.amazon.com/exec/obidos/tg/detail/-/020170353X/102-1792473-1871307?v=glance)" Andrew Koenig & Barbara Moo "[The C++ Standard Library](http://www.amazon.com/exec/obidos/tg/detail/-/0201379260/102-1792473-1871307?v=glance)" Nicolai Josuttis --- a "must have" "[Effective C++](http://www.amazon.com/exec/obidos/tg/detail/-/0201924889/102-1792473-1871307?v=glance)", "[More Effective C++](http://www.amazon.com/exec/obidos/tg/detail/-/020163371X/102-1792473-1871307?v=glance)", "[Effective STL](http://www.amazon.com/exec/obidos/tg/detail/-/0201749629/102-1792473-1871307?v=glance)" Scott Meyers…
Good list though I feel the section "not good enough" is confusing IMO. You put "C++ Primer Plus" in there and then go out to say that it might be a good fit if the OP has some prior programming experience.
I can think of two books to add on to the above list:
- Programming: Principles and Practice using C++ which I think is good enough for beginner/intermediate C++ programmers. One word of caution though; the author uses an external lib for demonstrating the examples in the book. It is assumed that the beginner has someone whom he/she can catch and get all the setup done. Setting up a new library/headers in Visual Studio is not a beginner if you know what I'm talking about :)
- API Design for C++ Not exactly a book just about API design but also contains bits and pieces of generic C++ wisdom. Obviously an intermdediate/advanced level book. Teaches you why you should put in more thought before attempting to write an API, the implications of all the code you write etc.
~s.o.s~
Failure as a human
12,247 posts since Jun 2006
Reputation Points: 3,307
Solved Threads: 787
Skill Endorsements: 55
A bit off topic, but thought it may be good to provide feedback here since I bought the book after reading this thread.
Andrew,
Bought the C++ Primer to familiarize myself with the new C++11. Overall seems like a good book, but there may be a few typos and errors that you missed during revision. Is there an email address so that I can point them out to the authors?
Example that I just found..Trivial but for what it's worth.
Exercise 2.25(page 59) Determine the types and values of each of the following variables.
(a) int* ip, &r = ip;
clearly r is a reference to an integer, so it can't refer to ip which is a pointer to an integer. Confirmed the error on the Visual C++ 2012 compiler Version 17.00.50522.1.
WolfPack
Postaholic
2,062 posts since Jun 2005
Reputation Points: 572
Solved Threads: 119
Skill Endorsements: 11
Accelerated C++ and C++ Primer 5th edition don't have answers!
That's a good thing. Then you won't be tempted to just look at the answer and have to work through the chapter over and over until internalizing all of the information necessary to complete the exercises. You learn more by not having answers readily available. If I recall correctly, Accelerated C++ actually mentions choosing not to provide answers and explains why in chapter 0.
deceptikon
Challenge Accepted
3,500 posts since Jan 2012
Reputation Points: 822
Solved Threads: 481
Skill Endorsements: 58
Isn't is easier to start with Petzold if one is going to program under Windows?
There are a few problems with this. First, GUI programming is not the be all and end all of programming, it's merely a tiny (and rather trivial) subset of it. Second, not everyone targets Windows, and learning C++ and learning Windows programming are two very different things that have to be treated as two separate learning processes. Third, why learn to do specific Windows programming when you can easily learn to use cross-platform tools that develop equivalent skills yet are more durable and useful in industry. Fourth, Petzold's books don't teach C++ at all. The pre-.NET editions teach you about the Win32 API and uses the C programming language (not C++), both of which are interesting for legacy reasons but a largely outdated these days. The post-.NET editions are in C#, with some examples translated to C++/CLI (or C++/CX, or whatever the latest re-branding of Managed-C++ is), neither of which have anything more to do with C++ than Java does, which is a terrible pathway to learning C++. And finally, Petzold himself stresses the fact that these are not books that teach programming, knowledge of programming is assumed prior to reading the books, they are just guides to help a capable programmer find his way around Windows' APIs. So, certainly, this is nowhere to "start with".
And this thread is about books that teach C++ programming, let's keep it to that, otherwise it will disolve into "if you want to learn this, use this book, if you want to learn that, use that book".
mike_2000_17
21st Century Viking
3,167 posts since Jul 2010
Reputation Points: 2,082
Solved Threads: 637
Skill Endorsements: 42
You can always ask questions about the problem here at DaniWeb. DaniWeb is not just for doing school homework.
Ancient Dragon
Achieved Level 70
32,275 posts since Aug 2005
Reputation Points: 5,852
Solved Threads: 2,591
Skill Endorsements: 70