Practical C++
The technical depth is what you would expect for a novice, but without enough hand-holding and examples to make a novice feel comfortable. Making matters worse, there are numerous typos in this section, including quite a few in the examples (making them uncompilable without corrections). Some of these appear to be type-setting errors, however, there are enough to potentially confuse novice developers.
I believe that the combination of weak examples, and significant typographical errors are strong enough to give a novice much difficulty in learning the C++ language.
Having said that, the section should be provide no difficulty for any programmer with a good knowledge of any vaguely similar language (eg, Perl, Java, PHP, etc).
Section II -- Beyond the BasicsAh, now we're getting down to Brass Tacks... this section goes over everything from Function overloading to Structure and Unions. The section on function members within structures also does an excellent job of preparing the reader for the upcoming introduction of Object Oriented concepts.
The sections on Memory management, both from an allocation standpoint, and from a bit manipulation standpoint are first-rate. Details are perhaps not as strong as they could have been, however the material is very accessible, and clearly described.
Probably my only complaint with this chapter is the overly general section on compiling and debugging programs. However, as this book does attempt to be somewhat compiler/debugger agnostic, this is forgivable. From here, we dive into the real power of C++, Object Orientation.
Section IIIFrom the beginning, this book treats Objects as an extension of the structure syntax taught previously (with the default of Public switched to Private). This, along with the classic Plans vs. Product description of the difference between a Class and an Object are quite clear and robust.
Again, this is a solid chapter, describing the details of getting a system of classes up and running, as well as some sample data structure implementations.
And then finally, the last section is a slightly less than 200 page description of the STL. This section is probably the book's weakest part, as it is just strong enough to give you a taste of what is available, but often not strong enough to grasp the details. It's a good start, but much more attention should have been made to this subject (potentially even at the cost of some of the wasted words on how a 'for' loop works). It makes a decent introduction for someone with very limited STL background, however, there is not enough depth to reach a strong level of understanding here.
Summary Overall, this is a solid book for an existing programmer to pick up C++ concepts. A programmer with a strong knowledge of an existing procedural language (such as C) would have no trouble digesting the concepts of this book. Having said that, the poor typographical issues, and verbose wording often muddle an otherwise good book.You can purchase Practical C++ from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Now THATS an oxymoron...
Its the only language that ive had trouble getting
cout "Hello World!";
(or equivalent)
to compile.
NO SIG
C++. What is it all about... is it good, or is it whack?
Contrary to what the article and link said, I don't think you can buy it (new) on bn.com. However, it is available here at amazon.com for 20.90 new or 9.00 used. Just fyi...
The anti-salmon
It ends with }
Opus: the Swiss army knife of audio codec
He should've used a little of that practical C++ for compression.
Guilt free purchase link.
In terms of going over bit manipulation, memory addresses, pointers, etc. it really goes into detail that I wouldn't expect for an entry-level reference. Then again it's so thorough it really isn't just an entry-level reference!
If you're talking about the specifics of a language to the point where the book you're reading is going to be obsolete after the next standards commitee meets--maybe you're reading the wrong book?
However, if the book you're reading concentrates on the principlas, instead of the individual bits and pieces, age shouldn't matter.
They still use the ritchie book after all, right?
What other books are on your shelf?
Thank you,
Mr Blinky
Open Letter From Darl McBride:
The code examples in this book are part of the intellectual property owned by SCO. You must pay $650.00 per code example to receive a license that allows you to use our IP. Send check or money order, no cash please.
Thank You,
Darl (Big D)
One bad monkey spoils the whole barrel.
(This book has been out for a few years; what books would make more sense today for a C++ learner's library?)
;-)
Best learner's C++ book has to be "Thinking in C++" by Bruce Eckel. I always touted his "Thinking in Java" as the premier book for the learning java developer, but his success started with TiC++. Best of all? Its available free electronically on his website (but I always went out and spent the $30 for the paperback version to support him).
If you pick up the book, you'll understand the language just a little more. He writes the book just how you'd like to learn, not like some math book that blandly gives out information in a manner that puts you to sleep. You can thank me later after reading it
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
From the review:
Here we have a section which goes over everything from for loops to if conditionals while simultaneously using verbose, duplicitous language at every step.
Umm, you do know that duplicitous means "Given to or marked by deliberate deceptiveness in behavior or speech", right? Or did you mean redundant?
(The quoted definition was provided by http://www.dictionary.com.)
I want to drag this out as long as possible. Bring me my protractor.
My C++ class used "Object-Oriented Programming Using C++" by Ira Pohl. The language was easy to understand, and it was aimed at people who'd done some coding, though it was necessarily a prerequisite. He somehow managed to make the subject accessible to newbies without condescending. A great book for beginners, and since I don't use C++ on a day-to-day basis, I find myself picking it up now and again.
The only surefire protection against Microsoft infections is abstinence. - The Onion
I am in the market for this type of book, however, the one I have my eye on is:
The C++ Programming Language (Special 3rd Edition)
by Bjarne Stroustrup
A reference is too hard too read, but this looks like it might be the right level - hopefully pretty steep, but with some language design chit-chat thrown in. What do others think of this book? (And what languages have you learned, a VB for dummies alum isn't going to give the same advice as Guy Steele)
Overall, this is a solid book for an existing programmer to pick up C++ concepts.
I'm not sure what books would be good for non-existing programmers.
For many, this C derivative is still a daily living. Thats fine. It's powerful enough.
These days, most people approach C++ as a way to "write fast code" or they desired to get to a lower level of the machine. Or, they know C and want to learn all about OO programming. NO harm there either, although I question all these motives.
For the most part though, end-user applications have no need to run in C++. I know the typical exceptions are in gaming, image processing and system internals, but this is a small subset of commercial programming.
I think elementary programming skills can be taught in C++ (i've done it), but you have to peel away so much of the language, one might as well start from C anyway, and then explain OO, and then combine the two. However, the ancestry of the syntax hangs newbies too often.
These days, I think the same goals in being "practical" could be achieved with Java for the same (if not less) effort. Plus, one learns the concepts of Events, Interfaces and a more useful standard library.
I've cranked out over 100K of C++ (haha, not hard to do with low-density langs) but in the end, I wish it would have been a longer-lived system. Many of our framework pieces are now part of the standard Java libraries, and we would have saved quite a bit of time.
But I think it's time for new programmers to move on.
VB for dummies.
Unfortunately, I'm only half kidding. Seems like most budding programmers I meet nowadays just want to take the fast route to a nice salary and don't care to learn how to write code well. A low level langage like C++ is definitely not for them.
USE='clever' emerge -u sig
An excellent book is Accelerated C++ - Practical programming by example (Koenig & Moo). It only weighs in at 340 pages, but really helps the beginner to use things like the STL. It doesn't start off teaching basic C, but leaves pointers out until much later, and concentrates on using the STL data types.
Depends on whether you're talking to a GNOME or KDE guy ;)
Are the mods higher than usual today? Jesus Christ, +1 Funny I could almost - almost accept, but Informative?!?
What are you planning on having for supper?
Steve
Next review, punchcards in a nutshell (It being an O'Reilly book will have a T-Rex on the cover) :-)
It's hard enough to remember my opinions, never mind the reasons for them..
This book is available on Safari for subscribers. Cheapest subscriptions start at $10/month. If you're not a subscriber, you can still read the first few sentences of each chapter and section.
Do you like answering questions?
I just had to read up on C++. I'm no expert programmer, but having experience from C and Java (in addition to having learnt the basics of Object-Oriented methodology) I wanted a book that didn't try too hard to explain everything from the bottom.
I found C++: The core language from O'Reilly incredibly useful in this respect. In its 200 pages, it might not cover every aspect of C++, but it will give you enough to go on so that you can start using the language. Being short and focused, it will give you a good understanding of the basics a lot faster than any larger book could, IMHO.
Practical Abacus
The only successful C++ project was Mozilla.
every single book i pick up or have someone suggest always has a prerequisite of some programming background. i'd like a C++ book (or maybe a general programming book?) that does not assume i have ANY experience in programming. i'd like to learn from the very first step, instead of starting somewhere in the middle. sure i can pick up the basics while still starting from the middle, but i'd like to build a solid foundation first. anyone?
I know these guys are usually MS weanies, but they have a couple of good C++ books by Ivor Horton.
I have "Beginning C++"
One day when I get a break from Java, I will actually start reading it.
The Bjourn Stroustrap stuff is excellent too. Should be since he is one of the leading proponents of OOP on C and helped define how C++ works.
I only know how to write "Straight" c and need to learn this stuff.
l8,
AC
From this review, this book sounds horrible. I can't stand books that:
1.) Don't have a clear target audience (from the review it sounds too easy and too little details for a programmer and yet too hard for a complete beginner)
2.) Seem like the author was paid by the page. Really, even for a complete novice, a well written book can teach C++ in less than 300 pages.
Conclusion: Don't buy this book.
That said, I really like Accelerated C++ for a novice programmer. The authors obviously know their stuff and it's very clear and concise. Lot's of good (not pointless little toy programs) examples that are clearly explained. Also, an example is built throughout a chapter so you don't have to comprehend everything at once. Finally, and this is the best part, STL is used from the beginning. Why save the best part of C++ for the end?
Amazon link: Accelerated C++
Best slashdot comment
C++ Templates The Complete Guide by Vandevoorde and Josuttis (ISBN 0-201-73484-2, Addison-Wesley) is an absolute must for anybody wishing to use templates (or discover new areas where to use templates).
The book talks about all the aspects of templates, has plenty of clear examples.
Apart from this I would not suggest the Stroustrup book for learning C++, but it is excellent as a reference manual.
Chuchi
The review is of a book that is supposed to be suitable, not just for C++ experts, but also novices. Whether you agree with it or not, it's not out of place to state the opinion that C++ may not be an appropriate tool for much commercial programming.
The above rant was copied from here.
Isn't it time we start seeing reviews of books other than C/C++/Java/Perl/C#/HTML?
/. developer community. Examples from the top of my head:
...
I am a hard core C++ person myself, but even I am fed up with the series of similar books on these PLs.
There are many other topics in programming that deserve better attention by the
Books on
- Code optimization techniques (both for C/C++ & assembly level and optimization for web programming and DB programming)
- Algorithms and data structures - this one will never go away whatever high level garbage collecting foolproof language/framework you end up using.
- Software design topics (design patterns and its relatives, UML, alternative paradigms such as extreme programming)
- Software project management topics
Come on people!
'Practical' and 'C++'...something's not right there. :)
If you are seriously considering programming in C++ you should definitely check out this book.
(This book has been out for a few years; what books would make more sense today for a C++ learner's library?)
Teach Yourself Java in 21 days
ducks
My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
"Introduction to Java" probably makes the most sense. Seriously, what few jobs in IT that seem to be out there right now all require knowledge of Java. Of course, C++ will still have its place for a long time to come for embedded devices, lower-level coding, etc.
I think it's a good book. It was the 2nd C++ book I bought and served me well. It did it's purpose, and for that I say it's worth the money I put into it. :)
It did go into a lot of things my previous book hadn't even mentioned. I agree with the reviewer that the STL information was a little lacking.
R.
I wonder if the guy who wrote this book is the same Rob McGregor who wrote all those bad Indiana Jones books in the 90's.
The only surefire protection against Microsoft infections is abstinence. - The Onion
if (this == theWalrus) {
Goo::Goo(&gooJoob);
}
It obviously is the bible... but I feel is more of a reference. I keep it on my bookshelf and use it often as a reference... there is no way you can sit down and read this like a text book. Way too dry.
C invented the dangling pointer. And it put the buffer overflow on the map.
Kids these days. You have everything we worked hard for handed to you on a silver platter. You have no idea where these concepts even originated. PHAH!
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
personally, i often wonder, think, whether or not its useful to consider that by the time someone gets to writing 900 pages about a computer language, that language has become crap.
or, at least, crufted, which everyone knows is on its way to crap.
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
Why do we need more books on Practical C++? The language itself is very practal and just about every intermediat book on the langauge emphasizes these aspects. What we really need is books that emphasize the practical aspects of languages that aren't used commonly in practice--- Practical Python, Practical Haskell, etc...
My personal favorite is C++ for Game Programmers.
It's not a general-purpose book and not for the complete beginner, but it dives deeper into when and why to use different programming styles and structures.
--The more you know, the less you know.
And, of course, you just had to sneak your little referral into there didn't you, kingdeal06?
I tried writing a program using C++ and it didn't even do anything. When I write programs in Visual Basic (The Pro Version) they almost always work pretty well. Obviously, C++ has some serious problems. Besides that I can easily get lots of sample programs that I can modify to suit my needs. I saved my company thousands of dollars by making some simple changes to some sample programs to make a program to track the employees I manage time and attendance and print out weekly reports. I did this in only a couple of days of work. Who knows how long that would take with some obscure programming language like C++? Probably 6 to 8 months, I would guess.
BTW, it's <A HREF=" http://my link goes here "> link name </A>
Cuneiform for Dummies.
The Que book is littered with omissions and errors. If you want to learn C++, start with the free Bruce Eckel e-book Thinking in C++, then move on to the Meyers trio, the Sutter pair, Gang of Four, Dewhurst, Alexandrescu, then Agile Software Development, in that order.
See Accu's booklist, EfNet #c++'s book list, or Yechiel Kimchi's list of bad books for opposing opinions.
StoneCypher is Full of BS
... having Stroustrup's "The C++ Programming Language" + Meyers' "Effective C++" and "Effective STL" on one's bookshelf? It doesn't sound like it's good for a novice. As I have the three books mentioned, why would I be interested in another 900 page tome of which the first section (novices) is irrelevant, and the third section (STL) is sub-standard, according to the review?
Except for all other languages...
Never Politically Correct ~ I prefer the facts If you don't like what I say, get a life, or comment yourself.
Is this the same person posting this "joke" to every article? Whats the origin of it? It pales in comparison with "In Soviet Russia...", "4. Profit!", and the one about Stephen King dying which used to be posted all of the time.
"The C++ Programming Language" by Stroustrup
"Effective C++: 50 Specific Ways to Improve Your Programs and Design" by Meyers
"More Effective C++: 35 New Ways to Improve Your Programs and Designs" by Meyers
"C++ Templates: The Complete Guide" by David Vandevoorde
I started college five years ago now, and in that time I've used C, Java, Python, PHP, Objective C and C# for significant projects. For classes I've also used MIPS and 68HC11 assembly, Haskell, COOL, and Fortran. I've even glanced as Lisp and (probably thanks to my Haskell and Python experience) found it to be an interesting language.
What I haven't used is C++. I used it once in a toy program I made, just to see what is was like. Since then I've never considered using C++ again. I really don't see the point when everything that C++ can do, one of the other languages I've used can do it better. I'm curious, what is the kind of application that I have not seen that C++ is the logical choice for?
Thanks. I'm used to vbulletin so I always fuck up the tags
As far as computer books one needs. This discussion lists some interesting ones.
move along, nothing to
We need short books that read like this:
- Collection classes
All that verbiage just confuses people.The standard template library (STL) provides useful collection classes. These make it easier to build common data structures. Arrays of variable size "vector"), lists ("list"), and key/value pairs ("map") are provided.
Collection classes are provided as templates, so a collection of any desired type can be created. The type must be copyable ("operator=" must work), as objects are copied into the collection.
Some basic operations are provided for all collection types. [TABLE]. Each collection type also has its own operations.
Collections are not entirely safe. "vector" is not protected against subscripting out of range, and "list" is not protected against modification while iterating over the list. Checked versions of the STL exist, but are rare.
vector
"vector" creates a resizable array with elements of "typename". Elements can be added to the vector, which causes the vector to grow. This involves memory allocation and copying, so there's a performance penalty, but growth is managed reasonably efficiently by allocating some extra space at each growth.
"vector" offers the expected operations for a resizable array: [TABLE] ...
Pah!
C and C++ combine all the raw speed and power of assembly with all the grace and smooth design of assembly.
(I heard that somewhere - don't know the original source).
Any author whose surname practically *is* a C string library function name gets my vote
What book should you get to learn C++ ?
Obvious - Straustrup's "The C++ Programming Language".
What else do you need ????
You should NEVER judge a language by your own limited use of it. C++ is just not the tool for you to do some quick code monkey job.
Come on, the kind of software you just described is most likely to be some cs undergrad homework. It's all about using "the right tool for the job"(tm).
Can you imagine running this application for a company with 50 thousand employees? The overhead in VB is quite a problem now, isn't it?
Oh, well, I admit it: baited!
If you really want to understand C++ you should invest the time to learn C from Kernighan and Ritchie's "The C programming Language" Then pick up Bjorn Strostroup's C++ design book and finnaly Bjorn's C++ programming guide. In these great tombs are all you'll every need to know to use C and C++ effectively.
I find that those who write off C++ really don't know the language, or at least the "modern" standardized language. C++ is incredibly powerful, and if you use solid OO techniques you really shouldn't have many issues with memory management. At least in C++ (as apposed to Java) the language guarantees that all destructors will be called and with well defined ordering. That allows you to use resource allocation patterns that greatly simplify memory manangement or resource issues entirely.
Although you can compare pure Java with C++ as languages, it is meaningless to compare a Java framework/JDK such as J2EE with C++, as the former is an entire environment, not just the underlying language. There's lots of stuff that C++ does better than Java (generics/templates, destructors, high-performance containers, abstract algorithms). Not to mention that C++ is a completely standardized and *free* language, whereas Java is a fast moving pseudo non-free standard.
Oh, and the syntax problems you complain about are not really all that different from Java, or even C#. Yes, they are each somewhat different and some have cleaner syntaxes for specific issues, but in the grand scheme of computer languages they are almost the same. And there are syntax problems with Java too which C++ doesn't suffer...they are both strongly based upon a C foundation, like C#, Javascript, etc.
And yes, I've written very large C++ projects with many developers very successfully, and C++ has proven to be a very nice language indeed as long as you take the initial time to learn it correctly rather than out of a C++ for Dummy's tutorial.
Now if you want to talk high-level languages (both Java and C++ are low-level of approximately the same power), then you should be talking about something like Python, or more academically Haskell. But Java is by no means a high level language, just as C++ is not.
it's from ali g
I'm on the first chapter of "Colloquial Hindi" but I'm a bit stuck on the pronunciation. I didn't buy the audio tapes, because (1) they're a ripoff (costing nearly as much as the book) and more importantly (2) where the fuck am I gonna find a cassette player? If I still have one it'll be under decade-old piles of crap.
Why are these Powell's so good?
Why should I/we feel guilty buying from Amazon, Barnes and Noble, Waterstones, or my local technical bookstore?
"Absolute C++" by Walter Savitch. Not too long, but very complete.
...Windows source code as examples!
One I saw recently in a store near Albany NY was a really really cool book aimed at people who already knew how to program C++, but which provided tricks and tactics. It included (amongst other things) a whole section on how to implement a flat-file database including variable-length records, a section on caching data, another on resource management... All really juicy hardcore technical details that I'd never seen before in a C++ book - and done in a framework-less manner.
I was out of town for a wedding, so I didn't pick a copy up because it wouldn't fit in my carry-on. I'm really regretting this because I can't remember what it's called now. It's not C++ In Action by Bartosz Milewski (although that's a really good book).
I've been looking through bookstores in Seattle ever since hoping to happen across it. Does anyone have any idea which book this is? I seem to remember it had a great sense of humor, and the back panel referred to it being a book for experienced/professional programmers (or something like that).
Thanks!
Coming soon - pyrogyra
algorithms & data structures... Knuth? not that i've read anything of his yet.
code optimization techniques, though i have not read Knuth i do know his thought that "premature optimization is the root of all evil". that being said, knowledge of algorithms and data structures might preclude the need to micro-optimize. Hmm, am I using preclude correctly? is it even a word? preempt maybe. anyway...
I have nothing to say on the other two topics, because I have to pee.
Perhaps more significantly, I find that those who write off C++ because only a "small subset of commercial programming" can benefit from it don't know much about the world of commercial programming.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Interesting perspective. Both Accelerated C++ and Modern C++ Design are very good for their intended audiences, but I'd have recommended about five or six other books and several years of experience using C++ between one and the other!
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
did the reviewer really mean duplicitous as in fraudulent, or did he just mean to say redundant?
mt
As a relative noob at programming, I'd have to say that Accelerated C++ is the best C++ book I've seen, particularly in respect to OOP.
It's a short 300-some pages, and isn't too inundating, while covering the topic properly: not from a non-OOP perspective.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
That C or C++ is "just faster", is a myth, and we should not further it. It should of course, be clear to anyone, that the language itself, makes no difference, but the implementation of said language, makes all the difference.
From "The Practice of Programming" ( http://cm.bell-labs.com/cm/cs/tpop/ ), I quote the following numbers, the running time, for a program, doing the Markov Chain algorithm on some large input text.
250MHz 400MHz
R1000 Pentium LOC
Irix 6.4 WinNT 4
C | 0.36 sec | 0.30 sec | 150
Java | 4.9 | 9.2 | 105
C++/STL/dequeue | 2.6 | 11.2 | 70
C++/STL/list | 1.7 | 1.5 | 70
Awk | 2.2 | 2.1 | 20
Perl | 1.8 | 1.0 | 18
(C/C++ compiled with optimizing compilers, Java had JIT enabled)
Gee, I wish there were more books on those topics as well! There are some skills that are rapidly becoming lost arts. Who the heck writes a linked list or quicksort these days? Who still knows how to write an efficient hash function? Most of the current crop of developers couldn't write a balanced binary tree if their careers depended on it.
Don't blame me, I didn't vote for either of them!
While it's nice to have a book which explains stuff like STL, I've often looked for a good online STL reference where I could get a list of every function in some class, class hierarchies, etc...
It would be nice to have a Javadoc/Doxygen-ish interface with at least a one line description of all functions in STL.
Anyone know of such a page?
Stop complaining and write a review yourself.
Oceania has always been at war with Eastasia.
And without them, there probably wouldn't be any others.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Ever tried to take out a hit on somebody? These days you are likely to end up getting an undercover police officer and wind up in jail. If you want something done right you gotta do it yourself.
Most definitely... since they were part of the group that helped develop the language from the beginning. They work down the hall from Stroustrup, and they are brilliant, brilliant people.
Koenig has done all kinds of work in almost every aspect of the language and the library (if you've ever wondered why your compiler isn't finding names correctly, that's because it isn't doing Koenig lookup properly), and Moo wrote one of the first "native code" C++ compilers ever, meaning that it doesn't translate to C before going to machine code.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
Lippman/Lajoie "C++ Primer"
Good overall intro to the language and supporting library (STL)
Coplien "Advanced C++"
A great "next level" book for intermediate C++ devs.
it's a tautology :)
:)
All C++ is practicle damn it
I cannot speak for the book mentioned in the article, but I can reccomend some other good programming books to use (for any language).
IMO, no self-respecting OOP programmer should be without a copy of Design Patterns and The Pragmatic Programmer.
I had a Savitch book (Problem Sovling with C++)for my intro C++ class and it totally SUCKS. The book could have been 1/3 of the length that it is: it routinely repeats everything twice just to fill out the pages. The writing style is boring, humorless, and lacks insight. This book could be appropriate, I suppose, for a very young and completely inexperienced CS person, but then, that person wouldn't have the attention span to read it anyway. If you have to buy this book for class, save your money. Buy something better or just use the 'net - jsut get the chapter titles and head for Google is what i'd do. I sold it back as quickly as I possibly could after the semester, and I keep any CS book that has even a *little value.
~mantis
while( true ){
if ( this == myBrain ){
++pain;
std::cout << "Argh!!" << std::newl;
}
death->Beg();
}
Why do most of the books ignore the practical aspects of of C++ that end up wasting tons of programming time, especially for beginners? Primarily I'm talking about things like how to keep tons of #include files under control and debug problems with them in your own code or existing code you are using or evaluating. How to organize source code into various directories for use by multiple projects. When and how to create compiled libraries. How to make DLLs on different operating systems as opposed to applications. And on and on.
There are a million books about how to program in c/c++, but how about how to get actual work done in c?
Syntax error: loose != lose, affect != effect, then!=than
The C++ Standard Library by Nicolai Josuttis. Covers the whold damn thing in about 800 or so pages. STL, STL, STL. Also convers, with less detail, the non-STL parts of the standard library- but those being mainly simple functions such as pow(), you don't need much detail beyond "throw it some numbers this is what you get back".
The only reason I do so is because "Modern C++ Design" really forces you to break out of the traditional "C++ = C with Objects" mentality. A programmer might never use some of the techniques in "Modern C++ Design" but hopefully it teaches him to be aware of the full capability of the language, and use the most appropriate techniques to the problem at hand.
A deep unwavering belief is a sure sign you're missing something...
How does the future of C++ look like? C++ has been abandoned on all Computer Science classed at my university, so this means less people are learning the language. Is C++ dead, or does it still have a niche? How is C++ doing in game development these days?
I have been using Deitel & Deitel's The Complete C++ Training Course Third Edition reference for at least 5 years, both as a student and later as a professional. I must say, this is *the* definitive C++ reference. It's easy enough that I learned C++ from reading it way back when, but it's comprehensive enough that I still refer to it sometimes when I forget some esoteric bit of syntax. I think there's a newer version out now, but I don't have any experience with it.
In Soviet Russia jokes are formulaic and decidedly non-humorous.
I've long given up on the five-pound gimmick books that cram the shelves at the book stores. They, 98% of the time, are a serious waste of money. For C++, for example, who needs anything more than Stroustrup's book plus their OS and compiler documentation? How can you get more documented than that?
Even for C, the best source is the K&R book plus the UNIX man pages. For Java, it is Sun's books plus the on-line JavaDoc.
How about we put some tech writers out of business by keeping our $50?
Vote in November. You won't regret it.
I couldn't agree less. It is not difficult at all to avoid memory leaks and segfaults, if you know what you are doing. Some simple rules like match every 'new' with a 'delete' and use 'delete []' if you used 'new []' will prevent the majority of these problems. Setting pointers to NULL before allocation with new and after deallocation with delete will allow you to check that your pointers are valid. But then you'd know all this if you had read 'Effective C++' and 'More Effective C++' by Scott Meyers, which are the two most useful programming books I've ever read. Meyers teachs that it's not hard to write good, correct C++ code if you know what you are doing.
I reckon most people wanting to learn c++ these days would be better off with http://www.constructionbook.net/products/plumbing
http://rareformnewmedia.com/
Wow, a Slashdot book review with a rating in the 3-8 range.
(Please, nobody actually research this. It's a wisecrack, not an assertion.)
Joe
http://www.joegrossberg.com
In fact, Mr. Knuth wrote "The Art Of Computer Programming" with MIX...
Anyway, for those who love java and such languages... you simply like them because you don't have to know what you're doing. I say: first learn C or C++ AND assembly, then learn java (or other high-level languages), so you'll have a grasp on what the compiler/interpreter does with what you write, and you'll understand the other ones fully. Don't hate pointers... they're your best friend.
Btw, why do you think that c and c++ are so widely used still today, if they suck so much?
42.
Some simple rules like match every 'new' with a 'delete' and use 'delete []' if you used 'new []' will prevent the majority of these problems.
A better simple rule, IMO, is to avoid new and delete (and their array versions) entirely. If you use containers from the standard library and/or good smart pointers, memory allocation problems should disappear completely. If you're using new and delete, there's more to doing it correctly than just making sure every new has a delete -- exceptions are an important consideration.
They're just politically correct gotos.
What's a carreer?
Although B&N is unusually high in price, it is not out of stock. They have new and used copies available. However, Amazon seems to have the best price over buy.com and bookpool ATM, but you don't have to click the referral link to get there ;)
The so-called book reviews getting posted on Slashdot lately are about as insubstantive as those I wrote in high school. Seriously, some of these books are as much as 1000 pages long, and the reviews amount to a few sparse paragraphs, and a total of a few hundred words. Reviews like this don't tell anyone anything useful, and they certainly don't provide an adequate overview of the book.
What happened to the real book reviews that actually covered the material? It's good to know that a couple-hundred-word essay on a several-hundred-page-book is a postable review these days.
Just to weigh in with a different opinion, I had high hopes for this book and bought it, but wound up being disappointed. I think it's excellent to begin by using the standard library right away. However, I would have preferred a book that wasn't trying to teach programming, especially in so pedantic a manner.
An example from page 40:
It doesn't stop there, but goes on for three more paragraphs over this nonsense!
A better approach -- and this isn't just my opinion -- would have been to talk about side effects, and then proceed to write code without side effects.
Much of the book is in this academic-holier-than-thou tone, and it is distracting and tedious. Moreover, you don't define your own classes until chapter 9, so you're writing procedural code in the meantime.
Respectfully, I just don't like it.
quiquid id est, timeo puellas et oscula dantes.
...is hardly a reputable source for ANYTHING.
because amazon are lying spammers
b&n censor freethinking/skepticism/antireligious books
The standard has autoptr. Boost (www.boost.org) has loads more useful variants. 99% of the time, heap memory (i.e. allocated via new) instead of stack memory (automatic variables) is only used so that you can allocate variable amounts of memory. By using smart pointers, you can have the flexibility of new as well as the safety of automatic variables (they deallocate out of scope).
When used as class member variables, smart pointers provide clear ownership of resources, helping programme design.
new and delete are also classically used to manage buffers. This should be done entirely with strings, vectors and deques nowadays.
For modern c++ programmes, run of the mill memory errors are really inexcusable, just as they are in Perl (my other favourite language). I am a full time programmer and have not had a memory/buffer error in years (yes, I have written countless kLOC and, yes, my programs have all sorts of other bugs ;-] )
by Stroustrup.
yeah, for beginers... sue me.
-pyrrho
Thanks for reminding me why I program in Java. I can't believe the wide variety of syntax used to generate a one line program.
My favorite are always those that are created to be used by competent, professional, responsible programmers. A language should not assume an incompetent lazy program and then impose a bunch or rules meant only to protect the incompetent at the expense of readability and flexibility.
A language should have feature, often optional, that helps the programmer use good practices to minimize mistakes. C prizes power over crutches. It is extremely possible to write very good code in C, if you know what you are doing. If you do not know how to code, then use VB. C will cause you nothing but grief.
C++ is the same problem. The classes are powerful but if you don't know what you a doing you can have destructors executing in the wrong order, which can lead to memory problems that may never be found.
Some languages, particularly those pushed by MS, assume coders who have no understanding of proper technique. Put a widget on the screen, add some code, write to a database. Creating proper modules, making sure dependancies are minimized, doing things back and forth in the same order, those are all skills that can no longer be afforded. If they could, we would not hear nearly so much complaining about C and C++.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
'Practical C++' is an oxymoron. C++ will never be practical. 'Practically extinct', on the other hand, we can always hope for.
If you are looking for C++ book recommendations, here are the best two web sites that I know of:
C ++
www.accu.org/bookreviews/public/index
This is probably the most complete and accurate list of C/C++ book reviews you are ever likely to find. Unlike the reviews you find on places like amazon.com which are written by the unwashed masses, these reviews are written by the experts who really do know a good book from a bad one!
www.cs.technion.ac.il/users/yechiel/CS/BadBooksC+
This won't tell you which book(s) to buy, but which one's to avoid!
5 out of 4 people have trouble with fractions.
You're surrounded by the /. crowd. I'm sure it wouldn't be too hard for someone to do it for free... and free is MUCH better than $227k.
*cough*... Oh, you are ignoring the C++ ABI. Which of course is the best thing to do when it comes to the C++ ABI. And which of course is also what most C++ tool writers have been doing as much as they can. I just went to the PalmSource conference, and they announced that they are using C++ in PalmOS 6, but they aren't exposing any C++ APIs from the operating system to the app writer because there is not yet a standard C++ ABI for the platform they're running on. C++ has been around for at least, what 15 years now, and there is still no standard ABI, so you are pretty much forced to stick with one proprietary ABI or to compile everything (shared libraries included) all at once if it is meant to work together and/or match up the versions carefully.
Meanwhile, in Java, despite the fact that the language has changed some, the ABI is basically constant across time and across platforms. So you can build your class libraries with whatever tools you want, one time, and they just work with anything else that wants to call them or be called by them. This is a Good Thing.
I'm not saying that Java is superior to C++, I'm just saying there are some things that Java does waaaaaay better than C++. Plus, I'm also reacting against the wording "completely standardized" in reference to C++. It's just not true.
By the way, I agree neither Java NOR C++ is a high-level language...
What good is it to learn Java or other high-level languages? C++ can be a very high level language. C++ can also be as low of a level language as C. It's flexible and versitile depending on what libraries use, but the ONLY power in Java comes from the library.
compile everything (shared libraries included) all at once
You compile everything every time you run a Java app anyway, and then it gets interpreted. What's the problem?
My personal fave: Accelerated C++ by Andrew Koenig and Barbara Moo.
- Rob Wilco
Every serious C++ programmer should have Stroustrup on the language itself, Josuttis on the STL, and Scott Meyers' "Effective C++" books. Alexandrescu's "Modern C++ Design" and Jusuttis' new book on templates also come highly recommended.
--
CPAN rules. - Guido van Rossum
A struct is exactly like a class, except that a class starts with private, and a struct with public. "struct{" is thus equivalent with "class{public:".
I used that one for in a class a few years ago.. I don't have much to say about it since I only opened it once or twice. I don't remember what I saw as being any good though.
Off topic? AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAHAHAHA HAAaaaaaaaaaaaaa. Nice one. Just wait until you graduate.
If you were blocking sigs, you wouldn't have to read this.
BTW you can take a look at some freely available books about c++ (and other subjects) in this site. It collects publicly available books and their links in one place.
It's good value at $0.00, but it's not a great book on C++.
i n- c++.txt
http://www.jamesd.demon.co.uk/reviews/thinking-
I think it was the second edition I reviewed. My comments have been given to the folks who are to produce the next edition, so hopefully it'll do a better job of living up to the hype. It would be great to have a quality tutorial on C++ available online at no cost, and I do have to give Mr Eckel credit for using this distribution channel (which I'm sure gives him a lot of good publicity for the printed version).
Seem to polarize people. I think "The C++ Programming Language" is very readable, and many agree -- but just as many find it opaque and unreadable.
Anyone who blindly tells people not to look at Stroustrup's "The C++ Programming Language" is commiting a grave disservice. The best thing to do is to look at it, and if it doesn't strike you as being readable, to look elsewhere.