Is this book for C++ ok/valid

Started by
9 comments, last by xeyedmary 9 years, 1 month ago

ISBN: 0078819695

I found this in a box of stuff, with all my notes and goodness still stuck in the book. I remember liking this book a lot and helped me quite a bit for whatever I was doing at the time.

Since I'm digging back into some C++, I was going to use this book. The only problem, it was published in 1994, and I will be heading toward the later chapters and advanced topics for my reference. Things don't really change in C++, they only add to it, right?

Advertisement


Things don't really change in C++, they only add to it, right?

That depends. Old ways of coding still work fine but are considered harmful, e.g. use of NULL instead of nullptr, using raw instead of smart pointers, not making use of C++11 features.

Ifyou're going to buy a book on C++ you should buy a recent one. After all, would you go out tomorrow and buy a book on DirectX 6, or the Linux 2.2 kernel?

Didn't think so :)

When you start working with other developers and they are using more modern syntax you might struggle to adjust, and many idioms have changed for the better e.g.preference of composition over inheritance in class hierarchies.

I am sure others can recommend much newer books :)

Thank you braindigitalis,

I'm probably not going to buy another book; I'll use whatever documentation I can find on line. I just hoped it would be nice auxiliary reading; but if it will be harmful, I'll put it on the donate pile.

The only problem, it was published in 1994

That's before the first C++ standard in '98.

The language was a bit wild-west back then, and we've had a number of fairly major overhauls since then: C++03, C++11 and most recently, C++14. You'd be better off looking for up-to-date reference materials at this point.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Things don't really change in C++, they only add to it, right?


That depends. Old ways of coding still work fine but are considered harmful, e.g. use of NULL instead of nullptr, using raw instead of smart pointers, not making use of C++11 features.


There is also something like std::auto_ptr which has been deprecated since C++11 and currently looks to leave us completely with C++17. Granted, it's the only thing I can think of right now which could be actively removed.

Put another way:

That edition of the book is over two decades old.

Most of the tools from the era it was written will no longer run on a PC. If it includes a compiler, chances are good your OS won't run it, as it would likely be a 16-bit DOS executable. Likely many of the items in the book rely on similar outdated systems.

That book teaches concepts that have been invalid for almost 17 years. Those things will not work at all.

The book misses major functionality that is everywhere today. These will be gaping holes in your knowledge.

The C++ language has gone through seven significant revisions, possibly more depending on how you want to count them.

The book may be useful if you were sent through a time machine, or if you are making a museum library, or if you need some kindling. I doubt anything other than the most trivial examples will even compile on a modern c++ compiler.

Things don't really change in C++, they only add to it, right?


That depends. Old ways of coding still work fine but are considered harmful, e.g. use of NULL instead of nullptr, using raw instead of smart pointers, not making use of C++11 features.


There is also something like std::auto_ptr which has been deprecated since C++11 and currently looks to leave us completely with C++17. Granted, it's the only thing I can think of right now which could be actively removed.

Note the date, 1994.

Many compilers dropped quite a lot of functionality and custom features when the first standard was introduced.

Many compilers of the era had minimal template support, and those that did had their own custom container classes. All of these were dropped, as the C++ language adopted a modified version of SGI's container library. So everything the book teaches on those will be invalid and cut from the language.

That is the era of 16 bit DOS. Many things will be taught in that book that have been long dead for most programmers. They did not have flat memory back then, you could mark pointers as near/far/huge. Segment:offset addressing was still mandatory and supported by the compiler. And so on.

If the book started sometime after 1998 and respected the first C++ standard then yes, few things would have been cut.

But this book is from long before the first standard. Every compiler was different, and there was no standard. Many were based roughly on Stroustrup's book, documenting AT&T's C++ 2.0 language, but it was more of a guideline than a standard.

After reading what frob said, I would be curious to read it and be nostalgic. I remember these old compilers and dos era programming. I miss good old borland turbo C++ :)

After reading what frob said, I would be curious to read it and be nostalgic. I remember these old compilers and dos era programming. I miss good old borland turbo C++ smile.png

I can send it over to you, book rate. Otherwise, it's kindling. I didn't think it would be so detrimental. If I ever do a tiny bit of C++ for whatever reason, it's the knowledge from that book, and what I learned during that time that gets it done.

After reading what frob said, I would be curious to read it and be nostalgic. I remember these old compilers and dos era programming. I miss good old borland turbo C++ smile.png

I can send it over to you, book rate. Otherwise, it's kindling. I didn't think it would be so detrimental. If I ever do a tiny bit of C++ for whatever reason, it's the knowledge from that book, and what I learned during that time that gets it done.

Thanks, I might just take you up on that if it's not too expensive to post...

I get all my up to date reference on Google these days and haven't bought a book on a programming language since c# and .NET first came out...

This topic is closed to new replies.

Advertisement