tags:

views:

909

answers:

11

Possible Duplicate:
The Definitive C++ Book Guide and List

Hey

I am looking for a good book to learn C++ from, given that I already know C and Java (and some other languages besides)? The books I have found at this point either assume a good understanding of C++ or that I am a complete newbie programmer.

Thanks.

+12  A: 

Accelerated C++ by Andrew Koenig & Barbra Moo is the one to go for. The first chapter may appear a bit "newbie-ish", but it quickly gets into more advanced language features.

Edit: Despite the many recommendations for Stroustrup's TC++PL, I must admit I've always found it (and the previous editions) somewhat turgid. And it has possibly the worst index of any techical book I own. I don't think he is cut out to write introductory/intermediate style books.

However, for am absolutely engaging and enthralling book by the same author, describing why C++ is the way it is, I can strongly recommend "The Design & Evolution of C++". Slightly out of date now perhaps, but still a great read!

anon
Totally agree with your opinion on Stroustrup's book. Also, and I'm always in the minority on this, I just never could "get into" the Koenig/Moo "Accelerated C++" book, either due to the writing style or the project example, which just didn't engage me.
Dan
+1  A: 

The C++ Programming Language, Bjarn Stroustrup. It's mostly pretty basic stuff, but there's enough on pointers etc. to be useful.

Ed Woodcock
+3  A: 

Effective C++ from Scott Meyers

x-way
+2  A: 

http://www.amazon.com/Sams-Teach-Yourself-Days-5th/dp/0672327112/ref=pd_sim_b_6 It's a good book, but like with all programming languages you're going to have to read more than one book.

Azreal
+6  A: 

Stroustroup's book is a classic. I'd recommend that. Once you get the basics of the language down, you should read Meyer's "Effective C++."

Honestly, knowing C and Java well prepare you for the gotchas very well. You should have no problem!

cpatrick
jfpoilpret
+1 for Effective C++
dwc
+5  A: 

C++ Primer is good for beginning C++ programmers, but it's not so slow-paced that experienced C programmers will be bored.

Also, see the answers to this question, as it's a near duplicate.

Bill the Lizard
Absolutely. In fact I might have upmodded you on another similar answer. This is THE book I think is the best. Readers note that it's the *4th* edition, I've had all 4 editions and the 4th is in a class by itself.
Dan
+2  A: 

If you already know other languages and also object oriented programming, you might find the books by Herb Sutter interesting:

From the description of the first book:

Aimed at the experienced C++ programmer, Herb Sutter's Exceptional C++ tests the reader's knowledge of advanced C++ language features and idioms with several dozen programming puzzles and explanations. This book can definitely help raise your C++ class design skills to the next level.

M4N
+2  A: 

I agree that Stroustrup's book is very good, but I disagree that it's a good first book to learn from. I'd agree with Bill the Lizard's recommendation of C++ Primer as a better book to start with. Read Stroustrup later when you've got some experience and want to understand fine details of the language.

John D. Cook
+2  A: 

C++ Primer by Stephen Prata is a great text. Not exactly what K&R is to C but very close. Excellent for someone in your position.

John T
Actually isn't Prata's book called "C++ Primer Plus"? It's a very good book too, but I think Lippman's "C++ Primer" (see BillTheLizard's answer) is better.
Dan
+7  A: 

Thinking in C++ is good for C programmers, it even recommends readers to view the Thinking in C seminar as a preparation material before reading the book.

Lawand
+1. great book by Eckel, both parts. It`s not just well written, it`s very good in design and font chosen for code.
chester89
Eckel wrote an introduction to make C programmers want to learn C++, explain advantages over C - so that would be well for you to understand in how many ways learning C++ would affect your coding productivity.
chester89
A: 

everything written by Herb Sutter or Andrei Alexandrescu is worth to be read. both authors have ability to explain very complex things in very simple way.

oo_olo_oo