"Accelerated C++" by Koenig and Moo for beginners.
"Modern C++ Design" by Alexandrescu for advanced.
Steer clear of books which start by teaching you the C subset, or overemphasise OO. Good C++ style is very different from good C style, and C++ is a multi-paradigm, not OO, language.
Name:
Anonymous2007-01-05 14:03
>>6
I have an answer for you LordRiordan. You sucking my dick doesn't make me a faggot.
Name:
Anonymous2007-01-05 15:00
LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot. LordRiordan is a fucking idiot.
>>10 >>13
Thanks, guys. This Anon got something useful from this topic, at least.
Name:
Anonymous2007-01-10 3:21
C++ How to Program
by Dietel and Dietel
3rd edition is probally the best.
Name:
Anonymous2007-01-10 19:06
>>20
Good book, but it kind of assumes you know some stuff about C first.
Name:
Anonymous2007-01-11 4:05
>>21
And you kind of should know C first. I recommend K&R to learn C, then you can pass on C++, but if you REALLY want to, you can use some C++ book.
Name:
Anonymous2007-01-11 7:17
>>22 fails because then you'll think it's natural to write code using
* Ordinary pointers, not smart pointers or references
* malloc or new when you should be allocating objects on the stack
* C-style casts rather than static_cast<> et al.
* char * rather than std::string
* Hand-coded loops rather than STL iterators&algorithms (e.g. foreach)
* etc, etc.
This will make your C++ look like ass.
P.S. There's absolutely nothing wrong with writing C. Just don't call it C++, or you'll confuse programmers that expect things like exception safety and implementing STL interfaces.
>>23,25
Nothing wrong with anything of that. And if you need, you can do C++-- taking the worthy features of C++ and leaving the shit out.
My point in >>22 was that C++ was not worth it, and that the OP should do C like a man, or move on to a real OO, high-level language.
>>24
The power of C++? The power of fuck-up and further obfuscation than already possible in C. It's a more subtle kind of obfuscation. It's not based on ***I1l-=*OO(O0--) type things, but on evil nested templates, memory management, etc.
Name:
Anonymous2007-01-11 12:09
LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag.
Name:
Anonymous2007-01-11 15:59
>>26
obfuscation my ass. operator overloading is easy to understand and helps you to write clearer and cleaner code. what's easier than this:
>>26
You shouldn't be a programmer if you think memory management is bad. It is essential for anything performance based, so enjoy writing your slow, bloated pieces of shit.
Name:
Anonymous2007-01-11 16:53
LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag. LordRiordan is a douchebag.
Name:
Anonymous2007-01-11 18:57
operator overloading only really works when you make totally new operators. If you abuse arithemetic operators you confuse people if you dont form a ring with your operators you're a fag and shouldn't use it.
Name:
Anonymous2007-01-11 19:13
>>28 operator overloading is easy to understand
I haven't criticized operator overloading. And for crying out loud, I hate that piece of shit Java! C++ is flawed for reasons other than overloading operators. In fact, that's one of the things it does right. Of course, people will abuse it, but people also abuse function names and methods, so it's all the same, or not, because a + b is of course clearer and nicer than a.concatenateStringForGreatJustice(b).
Name:
Anonymous2007-01-11 20:53
It's very obvious in this thread who has maintained a system of >10KLOC (i.e. more than a college project), and who hasn't. All the "shit" in C++ isn't there to solve anything in the problem domain, it's to solve something in human psychology--making large systems comprehensible.
Apologies to ex-C++ programmers who laboured under bosses who forced them to use every feature in the language. That isn't the way to do it either--you're professionals, use professional judgement.
Name:
Anonymous2007-01-11 22:17
If you don't know what a ring is (math) then don't overload your operators.
Name:
Anonymous2007-01-12 0:17
making large systems comprehensible.
Hah. Only if the people writing your libraries or framework are very good.
C++'s main problem is that it suffers from a lot of cruft gained over a couple decades of active evolution combined with inertia. What C++ really needs is to be reworked, but then it'd no longer be C++.
Name:
Anonymous2007-01-12 10:42
>>33
1. I'm maintaining a 150KLOC+ codebase
2. C++ sucks
3. Java sucks
What's a good C++ book for people like me who've used C++ for at least 5 years?
I'm still stuck with that Deitel & Deitel book I bought in 1999, lol. It was a decent (not great, not good, just "decent") enough book when I was a noob but now it's kind of... well I just don't want a bunch of cartoon ants teaching me C++ anymore. Are there any C++ books targeted toward us more intermediate/advanced C++ programmers?
>>43
Actualy mate, I have the same book and use it for refresher course somtimes just to buzzz the brain here and their.
The only issue im finding with most C++ books currently is they teach you the basic of the language. But don't teach you any modern design principle of smart pointers, design concepts, memory pools, and how to manage large complex projects.
Most of all the books are lacking in that last area. Allmost all of the books i've read have completly missed the point with exception handeling and error checking. Its a laugh really, that modern students who are learning C++ are just simply getting missled by alot of books out their.
I'm not suprised that the industry has moved to more friendlier languages like java or C#. If you take a deep hard look at books on C++ and anyalise them, you find they teach very bad programming practices in today's age.
I've yet to come accross a very good book that teaches good elegant design, from start to finish. Most of them are simply writen by university leactures who don't have any concept of the industry and software quality and reliability.
My 2 Cents, if you want to get in contact with me, post your email and i will contact you that way to discuss this topic further.
Name:
Anonymous2007-01-21 3:12
I use a set of C++ books.
The quickest return on the money is from Scott Meyer's Effective C++ series: Effective C++, More Effective C++ and Effective STL.
These cover modern C++, with smart pointers, RAII, etc.
For completeness, get the C++ STL book and the C++ language book.
The "Design and Evolution" book is also supposed to explain WTF Bjarne was thinking at times.
You guys are fucking morons.
Using C++ and not using the shit doesn't make it C++--.
It's still fucking C++.
Name:
Anonymous2007-01-21 13:58
>>49
>>do NOT mix and match C and C++ constructs in a program.
What's that supposed to mean? I use classes when I need object-strong functionality, but I still use structs and unions in places where the situation is appropriate for the sake of terseness.
do NOT mix and match C and C++ constructs in a program. >>What's that supposed to mean?
Not what the last couple of you are thinking. The biggest complaints with noobs are usually using C-standard headers without namespaces (or ignoring the C++ standard library on purpose); using namespace std; stupid use of malloc where new is just as good (or better); treating a class like a struct as a result of poor design (making everything with public access when you have no reason to).
Exactly the point I was trying to make. Thank you.
I shouldn't post after hacking on other peoples code for 19 hours straight. ;)
Name:
Anonymous2007-01-21 16:22
One of the problems with C++ and STL is that it isn't STANDARD. For alot of commercial packages, developers write their own library packages to suit their needs for the task at hand. The standard template is usefull when starting but when you need to corrilate a complete design persepective on your code, you just simply cannot do it with STL.
The next major problem is when you use STL your limited the version of the compiler and how it adhires to the standard. So the standard template library is infact not standard, it dependent on the compiler your using.
Go ahead be very arrogant that their is only one set way of development work in C++, and thats with the STL. But the truth of the matter is that the STL is very lacking in comformatity and simplcity to use, and doesn't have an good overview design perspective. To say otherwise just simply means you are a programmer and not a developer. Added to this, that the STL has to adhire to different compilers in what they can and cannot do. So when you get errors, god forsaken enjoy your debugging session.
Yeah but then when you want to write your own containers or data structures to avoid this problem, and ask for help here (and other forums, though it's more retarded here), you get the cliche "LOL QUIT REINVENTING THE WHEEL AND USE THE STL" faggotry from people who don't know shit about shit.
Name:
Anonymous2007-01-21 18:55
Perhaps, instead of a good C++ book, we'd need good C++ students.
Yes i completly agree with you. I finding that with alot of produced C++ code is that the underlying design is wrong, so the implimentation becomes very complex. I just simply see it time and time again. Its frustrating to load STL up into all my packages and just see error occuring because people just don't have a good grasp on how to use it, because its freakn complex beast.
I read effective C++ today, and more effective C++, overall the book is nice. But the guy doesn't give an overview design how to handel things. He hints here and their on subjects and warnings. But gives no backup material for his comments. I think i just simply refers to the old saying 'if you can't do, you teach'. But its about 100% better than the crap i've been reading.
Is everything in the STL usually mucked up across implementations, or only the really hairy containers like hashtables and treemaps and such? I've only used vectors so far in my game, but if worse comes to worst when I finish it and have troubles porting it, it shouldn't be hard to write my own resizeable array container.
I know for a fact John Carmack re-invents the wheel always specifically to make porting a cinch rather than a chore... sure, it adds a whole year of development time to a game when he COULD use the standard routines of C and C++, but it also makes *maintenance* easy -- when there's a bug in an id game, you immediately know, somewhere, it's id-caused, NOT caused by some third-party library or standard library routine has an unknown bug in it.
Because C++ is machine dependent and compiler dependent, you have situation where STL on linux will be implimented differently than on visual studio 2003 or 2005. This is because of compilers and how they define how they will impliment the C++ standard. This is where suttle bugs creep in and your up to 4 in the morning trying to isolate bug. The STL advicates will jump on my back here, and say im wrong. Because i didnt have x.*** library file or **** compiler. I don't need that if i build my own and maintain my own flexible library that is compiler independent.
The way I see it, is that STL gets programmers to comform to a set standard of programing, and in my opinion is error prone and doesn't help. It just simply hides pointer behind iterators. What is really needed is a top down design of how you structure your library files and memory management.
One of the typical example is to have a look at the STL, auto_ptr. From the onset it looks like a good auto pointer, but this is where the STL forces the developer to conform to a bad design. The trouble with auto_ptr is that the ptr itself carries around the reference of the object. So to solve this issue they impliment a safe_ptr and also a nonsafe pointer, you have to type case between the two. The correct design is much more simplier and easier to maintain.
Please tell me you see the issue here. That from a poor design, you have a very complex implimentation. So either, you have the following options.
1. Use the STL, read up about all the books that show you how to use it, effectivly! but shouldn't it be easy to use right away?
2. Roll your own, read up on all the technical specifications that are needed and design a simple flexible system. You will come out of it better.
I really comes to preference really. Do you want to design software, or use API for the rest of your life? How come that John Carmack writes his own librarys, mabe because to his standard everthing else is poorly designed for what he needs?
So you let the vender lock you into one compiler? What happens if you need to sell your invention or system to another company that relys on a different compiler? Set the requirements so it only compiles with GCC 2.0 or VS 2003? Thats just scary.
Thats my whole entire point, IT ISNT STANDARD. It should really be renamed CTL, Compiler Template Library. It makes no sense, naming it standard when it isnt standard accross the broad with different compilers and diffirent implimentation. Such the only real alternative to the STL is to use Boost, although in my opinion its where all the old C++ compiler writers go to die.
C++ is machine dependent and compiler dependent you noob. Next time lookup your compiler specifications before you post crap.