tags:

views:

461

answers:

7

I know C pretty well, and I need to learn C++ pretty quickly. Does anyone know of any books, that assume a decent knowledge of C, and then goes over C++?

+1  A: 

Well, honestly, I recommend, as you might have went to K&R for C, going straight to the source for C++ and get Stroustrup's book:

http://www.amazon.com/C-Programming-Language-Special-3rd/dp/0201700735

Although, another approach is Deitel's book. Surely, you know how to program, but you can skip the parts you already know and classes are introduced quickly:

http://www.deitel.com/books/cpphtp5/

One of my favorite C++ books has always been Ivor Horton's Beginning C++:

http://www.amazon.com/Ivor-Hortons-Beginning-Complete-Compliant/dp/186100012X

BobbyShaftoe
A: 

I think nothing beats Bjarne Stroustrup's "The C++ Programming Language" (Amazon). The author of the book is the person behind the language itself.

DrJokepu
A: 

Stroustrup's books are good, Jim Coplien's books are good, Scott Myers' books are good, and I'm fond of the C++FAQ Book.

Charlie Martin
+1  A: 

I would recommend you the "C++ How to Program" by Dietel and Dietel.

It has a good introduction to C and deals extensively with all the major features of C++. It is also quite widely used in schools today.

I wouldn't suggest you to pick up something link "The C++ programming language" by Bjarne Stroustrup (C++ creator) owing to it's depth which can be quite overwhelming.

Epitaph
I cannot recommend any book by these two.
Huntrods
Disagreement isn't a reason to downvote.
BobbyShaftoe
As for not picking up Bjarne's book because it's big ... ? Huh?
BobbyShaftoe
Dan
Agreed Dan. Infact, it can be quite overwhelming for a beginner. But, it is a great reference to understand the intricacies.
Epitaph
+6  A: 

Does anyone know of any books, that assume a decent knowledge of C, and then goes over C++?

Yes, Bruce Eckel's Thinking in C++ does exactly that. It (or at least, the first edition of it; the book has grown since then) is how I learned C++: it assumed you know C and then, incrementally, taught the ways in which C++ adds to C.

I read other books afterwards, notably Meyers' and Stroustrup's: but both of these I think assume that you can already read C++. Thinking in C++ taught me, at least, how to read the syntax.

ChrisW
Excellent book. I have used it in C++ courses (C++ for programmers).
Huntrods
+5  A: 

The C++ programming language amazon link
by Bjarne Stroustrup
An excellent reference book. Not a good intro to the language. The examples tend to be disembodied, without context. Buy it, but don't read it straight through.

Accelerated C++: Practical Programming by Example amazon link
by Andrew Koenig and Barbara E. Moo
Great intro book for hitting the ground running. Short, sweet, and to the point. Uses the STL from the first example and never stops. Teaches C++ as it was intended to be used.

Essential C++ amazon link
by Stanley B. Lippman
Short tutorial book. Teaches all of the basics well, but definitely covers the real c++ bases (generic programming, OOP, exception handling), not just c with classes.

C++ How to Program amazon link
by Harvey & Paul Deitel
A textbook. Expensive. Assumes that you know very (very) little. Most of the book uses c++ as if it was just c with classes.

Thinking in C++: Introduction to Standard C++ amazon link
by Bruce Eckel
Good thorough guide to making the transition from c to c++. Methodical. Not a quick dive, but great for getting you to feel comfortable with c++.

John Mulder
For an expert C programmer, nothing (IMHO) beats "Accelerated C++".
Employed Russian
+2  A: 

You've got some very good advice already here, devin. I just want to impart some supplementary advice.

Pace yourself. As best as time will allow.

Both the C++ language and the C++ standard library are several times the size of C. Despite the language's name, it's not an incremental change.

C++ can be particularly deceptive for C veterans because while its paradigms are very different, it is largely backwards-compatible with C. Be in the mindset to tackle old problems in a new way. It will be difficult because you will have to unlearn some habits and C++ won't force you to unlearn them.

Shmoopty