A Tour of C++ (C++ In-Depth Series)

A Tour of C++ (C++ In-Depth Series)

2nd Edition
256
English
0134997832
9780134997834
29 Jun

In A Tour of C++, Second Edition, Bjarne Stroustrup, the creator of C++, describes what constitutes modern C++. This concise, self-contained guide covers most major language features and the major standard-library components―not, of course, in great depth, but to a level that gives programmers a meaningful overview of the language, some key examples, and practical help in getting started.

 

Stroustrup presents the C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, including many that are new in C++17, such as move semantics, uniform initialization, lambda expressions, improved containers, random numbers, and concurrency. The tour even covers some extensions being made for C++20, such as concepts and modules, and ends with a discussion of the design and evolution of C++.

 

This guide does not aim to teach you how to program (for that, see Stroustrup’s  Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you’ll need for C++ mastery (for that, see Stroustrup’s  The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you can’t find a shorter or simpler introduction than this tour provides.

Reviews (57)

The best book for experienced programmers to quickly learn modern C++

This book is a great introduction to the latest features of the C++ language and standard libraries for experienced programmers. Although I would not recommend this book for anyone who wants to learn C++ as their first programming language (I would suggest this instead:

Modern C++ in a nutshell

This book is less than 250 pages. It presents modern C++ features that come with C++17 together with some future (most likely) C++20 features (such as concept and span). It should take a couple of hours, or up to 2 or 3 days to read from cover to cover. The C++20 features introduced in this book are nice preview to look ahead on the upcoming C++20 standard. It best suits a former C++ programmer (C++ 98) to get a quick impression of C++ 17. It doesn't not suit a programmer with zero C++ knowledge. This is not a C++ beginner's book. In essence, this book is . Reading this book, you won't become a master of modern C++, but you will be equipped with a fair amount knowledge in modern C++ so you know what-to-look-for, and when-to-look-deep. Personally I wish the author could have discussed somewhat more on class invariant. I don't have any other quibbles.

The perfect book for people who already know C++

Bought the book because it came highly recommended by experts. Also the author, Bjarne Stroustroup, is the original author of C++. Who could POSSIBLY know C++ better than the author of the language? Well, no one. But the real issue from my perspective is: Does this book actually help a newbie learn C++? The answer to that question, sadly, is NO. Prof. Stroustroup has written this book for C++ experts. He glosses over issues like--what operating system to use, what IDE to use, what are the differences between various C++ environments, what issues could trip-up a newbie programmer etc. The entire book is littered with 3-line code fragments that beautifully illustrate a specific language feature, but you cannot easily take those 3-line code fragments and do anything useful with them unless you're already an expert C++ developer. All this begs the question--why buy this book if you're trying to learn C++. Let the experts buy it and heap 5* ratings on it.

As brief a possible, but no briefer

Few authors have the respect for the reader and the confidence necessary to write books that are only exactly as long as they need to be. This book is another example from Stroustrup which models this ideal. I don't hesitate to buy later editions of books I already own by Stroustrup since 1) they're invariably the authoritative work on the subject and 2) its very unlikely to be a waste of my time. This book does not attempt to teach programming with C++ but will give an existing programmer a select and concise overview of both previously existing and new C++ facilities.

A must read for modern C++ programmers

A solid overview of the modern C++ (17) by the venerable creator of C++ himself. An easy and engaging read, best read along with a compiler so you could type in the code snippets to drive home the various points the author is making. A concise book, most knowledge points are just briefly mentioned, isolated points are seldom repeated, points building up upon each other are presented progressively with independent examples. Suitable for people who have old school C++ experience. For novices, better start with a tutorial first. Very happy to have pre-ordered now seeing it is out of order. Only given 4 stars because of poor editing job by the publisher. Many typos for the first print, words like "ultimate" can be spelled wrong, where is your spell checker? Nevertheless, a book to be placed on the desk not the shelf, I would prefer and buy a hardcopy if it is available.

An excellent way to become familiar with modern (and future) C++

I majored in electrical engineering and worked three years in the aerospace industry. Between device-dependent embedded code and archaic ANSI C and C++0x environments, I had no idea what I was missing out on until now. I am currently in an industry that is a little more trusting of deploying products built on the latest compilers including most of these features. This perspective was really valuable to me because it gave me a high level vision for how all of the language features and standard library tools fit together. With wise use of the scope and std features you can pay such little performance penalties for massive improvements in code base size, clarity and resource management. I will be keeping this by my desk for reference.

Worthwhile upgrade to the First Edition

The first edition of this book covered C++ up to C++11. Now that I've moved to C++14, I decided it was time to buy the second edition, which covers up to C++17 and notes some of the upcoming features of C++20. If you like the first edition of this book, you'll like the second edition even more. Going from 181 to 240 pages, all of the first edition content seems to be there, along with the same terse but informative information on the new C++ features. There is also expanded information on C++ usage in general. For example, the old 'Classes' chapter is now broken out into two, with an additional chapter 'Essential Operations' added that covers both the newer copy and move references, as well as new material on resource management and conventional operations (eg container operations, etc.) reflecting the latest thinking on best practices with C++. The 'Templates' chapter has been broken out to include a new chapter 'Concepts and Generic Programming' covering generic programming and variadic templates. The Input and Output chapter has been expanded to include not just the new File System functionality, but also C-style I/O (and how to mix it in without too much grief). The 'Algorithms' chapter now covers parallel algorithms from C++14 as well as Concepts from C++20. The 'Utilities' chapter adds new depth on customizing allocators, as well as describing new features such as range checking (span) and alternatives (variant/optional/any). As before, the final 'History and Compatibility' chapter lists the majority of changes between the major C++ versions, now up to C++17. Also as in the first edition, each chapter ends with a long list of Advice for best C++ programming practice, now updated to reflect the changes brought about by the new C++14 and C++17 methodologies. As with the first edition, this book is not an introduction to C++ for beginners, nor a detailed reference. As an experienced C++ programmer, I use it mostly as a 'Pocket Reference' to remind me of the often-quirky syntax required for a particular operation, or as a quick refresher of a particular C++ topic before I dig deep into "The C++ Programming Language" tome by the same author, cppreference.com, or Stack Overflow. It's also fun to just flip through occasionally to remind myself of functionality this porcine language hauls around that I only use when the planets align...bitsets, I remember those, oh yeah, ofstreams, std::iota()? totally forgot about that one...

The "K&R" of Modern C++

This book is short but philosophically dense, written in a conversational style which meanders seamlessly from topic to topic, all-the-while punctuated by references to other related areas of the book. I found myself following these subsections in a choose-your-own-adventure style after the first read-through. Error handling is on page 35, RAII-style destructors are on page 51, and "Hello World" is on page 125 (essentially). And it works, because the author understands the material well enough to make everything flow intuitively. The text is black, and the syntax is bold blue, and they both use the same nice-looking font. The formatting is top-notch. The chapters conclude with a section of "Advice", which also summarizes the chapter in bullet-point format. These did not 100% match with my personal "Aha!" moments in the text: I used a red pen to underline key words and phrases to be easily found, but not distracting (as highlighting would be) on subsequent readings. I think the red/black/blue keeps it all nice-looking... It was easy to get bogged down in some areas which were hard or not interesting but it's there for a reason, and powering through helped prepare me for what was further in. There's only one other programming book I've enjoyed like this, hence the headline. I think this style of writing suits the same purpose as That One.

A Fantastic Text For Both the Experienced & Inexperienced C++ Programmer:

This textbook is a fantastic resource for those C++ programmers that are either experienced and well versed in the language, and ALSO those of us that not so well versed or knowledgeable of the discipline. It's wrote by the originator of the language and has plenty of helpful resources & examples for the reader/programmer. It probably more appropriate for the beginner or intermediate user, than the savvy professional, but it is helpful to EITHER person.

Perfect if you already know programming fundamentals in other languages

Although it is self described as a tour through the language I feel that this is the perfect level of instruction for programmers with previous experience in other languages. The book is short but yet somehow manages to convey exactly what you need to get started with serious C++ development without leaving it feeling basic. There will be areas that require additional reference but this book prepares you with all the fundamentals giving you the base from which to work. I wish all programming books were written in this short, concise, and very well articulated manner. Introductory books are needed for first time programmers, for the rest of us we need books like this that don't waste our time explaining what a variable is and get us up and running.

Related Books

Comments

Popular posts from this blog

Greendale Home Fashions Deep Seat Cushion Set, Kiwi

PECHAM 3.5mm Jack Gaming Headset for Xbox One, PS4, PS3, PC with Mic - Gaming Headphone for Cell Phone, Laptops, Computer (Blue)