tags:

views:

534

answers:

12

I am looking for a book which can teach OOP concepts using c++ . Could you guys please suggest me some books.

+7  A: 

C++ is probably not the ideal language for doing this, because very large chunks of the language do not require or use object oriented techniques. You might be better off looking at something like Java or Python instead.

anon
The question asked is the wrong one: "should I learn C++ or Java?" I shall try to lay out my view of the true issues involved in choosing a career in computing. Note that I am not talking here to the people who already know it is their calling. You're going to do it regardless of what anyone says, because it's in your blood and you can't get away from it. You know the answer already: C++ AND Java AND shell scripting AND Python AND a host of other languages and technologies that you'll learn as a matter of course. You already know several of these languages, even if you're only 14.Bruce Eckel
Totonga
Or C# or Boo if you work on Microsoft technologies/use their tools.
SDX2000
Agreed on not C++. Eiffel is an alternative as well.
@clemahieu I haven't been tracking Eiffel recently. Is there a good, FOSS implementation yet? If so, can you provide a link.
anon
+2  A: 

I found Meyer's "Effective C++" and "More Effective C++" both very good reads.

Beano
While these books are great (just damn great!), i think you need to be playing with C++ for at least say six months to **really** appreciate them. If it is about starting with C++, who not go for "The C++ programming language"!
Hemant
A: 

Large Scale Software Design in C++ by John Lakos really nails it, but not beginner stuff

David Archer
+2  A: 

Accelerated C++ by Andrew Koenig is my favourite

ugasoft
It's a great book for learning C++, but it doesn't focus much on OO programming.
StackedCrooked
+2  A: 

Accelerated C++ by Andrew Koenig is probably a right choice to start with C++ and OOP.

You should also make yourself familiar with general concepts, take OOA/D by Grady Booch and Design Patterns by GoF.

Actually, Thinking in C++ (both volumes) is my favorite. After reading it you won't even need most parts of [More] Effective C++, Effective STL (but still go over them!).

Then, you can browse C++ for Professionals, which will focus on pecularities of C++ features, and cover many other useful topic of development.

MadH
agreed, Thinking in C++ are great books
chester89
bought Thinking in Java few days ago. Hope it's gonna be as good ;-)
MadH
+2  A: 

C++ isn't the best language to learn object oriented programming because of the huge freedom in the language itself. C++ still contains ANSI C and so most of the Books to learn C++ start teaching C.

I always hated this approach and I love C++. The only book that came my way I liked is Thinking in C++ from Bruce Eckel.

The fist chapter is called

1. Introduction to Objects

after explaining all the object stuff chappter 3 explains some C stuff.

3. The C in C++

Since C++ is based on C, you must be familiar with the syntax 
of C in order to program in C++, just as you must be reasonably
fluent in algebra in order to tackle calculus.

So its almost 10 years ago when I started reading it I still remember it to be a good teacher because it also explains why some things in C++ are like they are.


Wow: I searched for it and here is a free download.

Totonga
+2  A: 

C++ FAQs, Second Edition By Marshall Cline, Greg Lomow, Mike Girou

Also you can read its lite version online from here

msh
+2  A: 

(Note: I don't know what OOPS means, if anything. I'm assuming OOP here.)

What I did, and worked very well for me:

  1. Learn pure OO. It will be useful anyway. When you move to C#, your knowledge of OO will remain the same, not contaminated by C++ syntax.
  2. Learn C++.
  3. Apply OO to C++. With some good articles as a reference, you'll be ok.
Daniel Daranas
I think this is the right approach. Shouldnt confuse a language with pure OOP concepts. Its unfortunate but since both go hand in hand, it is impossible to learn object oriented programming without choosing a language.
Hemant
@Hemant: Yes, you need a language to do anything at all - that's why the author of the book I linked kindly pushes Eiffel down the reader's throat :)
Daniel Daranas
@Daniel:CAn u suggest me some book for learning pure OO,how about head first object oriented??
deovrat singh
@deovrat singh: I used "Object-Oriented Software Construction, Second Edition" - see the link I put in "Learn pure OO". Other books may be easier /faster to read - I haven't tried the Head First one. Also, check related questions about this such as http://stackoverflow.com/questions/1551/how-to-think-in-oo or http://stackoverflow.com/questions/500475/learning-oop-well.
Daniel Daranas
A: 

The best way of learning OOP is by learning Design Patterns. I started out with the book Design Patterns Explained. However, many people recommend Head First Design Patterns, so that's probably a good choice too, even though it illustrates the concepts using the Java programming language.

StackedCrooked
A: 

There is one book called C++ with Object Oriented Programming by Paul S. Wang, ISBN 0-534-19644-6

A.Rashad
A: 

I learnt OOP with C++ first but my best experience was from a book by Paul and Harvey Deitel, JAVA How to Program, for Java programmers. The text has interesting case studies that take you from analysis through design to implementation of software using the O-O methodology. There is a C++ counterpart to the book, C++ How to Program, by the same authors. I think it is good enough too for beginners (and pros alike).

A: 

Thinking in C++ by Bruce Eckel. A version is freely downloadable from http://www.mindviewinc.com/Books/ (not sure if that's the latest, but it's free so no loss in taking a look at it.)

Anon