Books usually lag significantly behind the development of anything. Boost is moving at quite a rapid pace.
Books usually lag significantly behind the development of anything. Boost is moving at quite a rapid pace.
All the buzzt!
CornedBee
"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
I already know C, so I'm going to see first C++ Annotations (mentioned in the second page of this thread) since its free.
But what book do you recommend for me? I want a book that gets to the advanced level, or that it mentions every detail of the language and does not leave anything behind.
I don't think there's such a book. C++ is huge and there are plenty of areas you can dig into. Meta programming is one, for example. Templates are a heavy area.
Then there's inheritance and the like.
I'd definitely recommend template meta programming though. It's very powerful and can do things C programmers could only dream of.
OK well, guess I'll take a look at the annotations and then buy myself a reference book or something.
>> I want a book that gets to the advanced level, or that it mentions every detail of the language and does not leave anything behind.
I'd recommend Accelerated C++ for you, since it is accelerated and teaches modern C++. If you want a book that goes deep into C++, The C++ Programming Language by Stroustrup is a great reference.
Getting both would be best.
Addison Wesley - C++ Primer, 4th Edition by Lippman, et al is one excellent choice for an in depth study of the C++ language following on traditional teaching techniques (e.g. from simple to more complicated).
It is my main recommendation to anyone starting C++ because of the fact it covers the whole language and its facilities in much detail. It does this following current coding best practices while explaining those best practices, goes in a lot of detail, has an accessible language that appeals to the beginner and yet is concise and semantically correct.
The book lacks a proper exercises mechanism. It is implemented, but is weak in my opinion. It doesn't provide answers to the exercises either. It could, in my opinion gather a few more pages around the issue of Templates and definitely, given the scope, should have had a more detailed text on the issue of compilers. The book also makes no effort in describing debugging best practices or even talk about the issue of debugging. This is however a prevalent issue around many programming books. And I always felt it to be a strong weakness of today's books, considering the ever increasing complexity of programming tasks.
But all in all, I never found a better book for C++... and I'm a bookseller (really).
Originally Posted by brewbuck:
Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.
Matas, thanks for taking the time to reply. Actually, I am considering the book you suggested, mostly because of its author. I'm curious if in your opinion it is more of a reference than a teaching text. At over 1000 pages would a novice like myself be getting in over his head? I'm an academic so big books don't scare me (well, occasionally they do) but I fear becoming lost in the forest for the trees, so to speak.
I think it is 1000 pages because it explains a lot of things. It is more of a reference than a teaching book, but it's not a "bad" type of reference book for the purpose of learning, if you see what I mean.
The other C++ book I have is a "C++ for Programmers", which is intended to teach C++ to people who have a decent understanding of programming already. By the sounds of things, I'd say that you have SOME experience of programming, but it may not be sufficient to go for that sort of book [never mind that I couldn't find the book I've got in Amazon].
Edit: I had to look it up, but Koenig & Moo's "Accelerated C++" is probably the best "beginners" book. That would be the book I'd recommend as a companion to Stroustrup.
--
Mats
Last edited by matsp; 08-11-2008 at 04:02 AM.
Compilers can produce warnings - make the compiler programmers happy: Use them!
Please don't PM me for help - and no, I don't do help over instant messengers.
I guess I disagree. I think TC++PL is a heck of a teaching book, with a ton of great insight into concepts and philosophy. To be sure, it is a reference, but I think it is more of a textbook. Particularly the Special Edition with Appendix E on exception safety, which is gold IMO.
I'd highly recommend it if you want to learn some "why" with the "what and how." A good companion would also be The Design and Evolution of C++.
For my recommendation in general, I would say Standard C++ IOStreams and Locales by Langer and Kreft for advanced programmers.
Please, are there any other people with recommendations?
Take care.
Compilers can produce warnings - make the compiler programmers happy: Use them!
Please don't PM me for help - and no, I don't do help over instant messengers.
>> I'm in search of an introductory text on C++ Programming that approaches its task from a
>> theoretical or philosophical perspective.
I don't know any C++ books that specifically take this perspective. Amongst all books I think your choices are good.
Why can't someone make a way to learn C++ for those who hate to read? :P
Currently research OpenGL