Jump to ratings and reviews
Rate this book

A Tour of C++

Rate this book
The C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code. Bjarne Stroustrup, the designer and original implementer of C++, thoroughly covers the details of this language and its use in his definitive reference, The C++ Programming Language, Fourth Edition . In A Tour of C++ , Stroustrup excerpts the overview chapters from that complete reference, expanding and enhancing them to give an experienced programmer–in just a few hours–a clear idea of what constitutes modern C++. In this concise, self-contained guide, Stroustrup 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++11, such as move semantics, uniform initialization, lambda expressions, improved containers, random numbers, and concurrency. The tour ends with a discussion of the design and evolution of C++ and the extensions added for C++11. This guide does not aim to teach you how to program (see Stroustrup’s Principles and Practice Using C++ for that); nor will it be the only resource you’ll need for C++ mastery (see Stroustrup’s The C++ Programming Language, Fourth Edition , for that). 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.

181 pages, Paperback

First published September 12, 2013

555 people are currently reading
1218 people want to read

About the author

Bjarne Stroustrup

30 books213 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
495 (46%)
4 stars
408 (38%)
3 stars
127 (12%)
2 stars
19 (1%)
1 star
5 (<1%)
Displaying 1 - 30 of 116 reviews
Profile Image for Benjamin.
10 reviews2 followers
March 18, 2015
If you have no programming experience, this book won't teach it to you (read Programming: Principles and Practice Using C++ instead).
Programming Principles and Practice Using C++ by Bjarne Stroustrup

If you want to learn about every detail of C++, this book won't give it to you (read The C++ Programming Language instead).
The C++ Programming Language by Bjarne Stroustrup

If, however, you come from another language and want to get an overview of what's possible in modern C++, or if you're an experienced C++ programmer and want to know what's new in C++11, this is the book for you. Concise and following a "less is more" approach, it doesn't take long to finish yet still serves as a reference for the most important language features. Highly recommended.
Profile Image for Jakub.
18 reviews22 followers
August 10, 2014
Given that I've programmed in C++ before this book was perfect for me as a re-introduction.

It doesn't really explain things in depths, but it is rather just a very quick tour of the features. Perfect for someone who's an experienced programmer and has done some low level programming, but not very useful for beginners I'm afraid. Still I'd recommend reading this, if nothing it servers as a good motivational text to keep learning more.
Profile Image for John.
36 reviews
March 18, 2025
I haven't read a book about C++ in a long time because I mean I learned it in college and then I used it for work for so long that I figured I knew all about it and I didn't need to read a C++ book right? Well, this one is pretty short and it's written by the guy who invented C++ so I decided to give it a shot. It turns out it was pretty interesting. They came out with a new version of C++ in 2011 and they added some new keywords and features, so that was good to read about. Also, I never really used much of the standard library when I was programming before because I had always heard that the STL was too bloated and nobody should ever use it for a game ever. Well since then I have heard that it's gotten better, and I programmed a lot in C# where they have all the generic structures that the STL represents, and it's just really useful to be able to use something that already exists instead of having to write your own linked list every time you start up a new program. So I've started using the STL and it's not too bad. Whatever. I like C++ but probably not as much as I like C# still.
Profile Image for Jake McCrary.
424 reviews25 followers
January 1, 2020
First a little about me. I've been a professional programmer since 2007 and I first started learning C++ sometime in 2001-2002. I've worked in a variety of languages with C++ taking up a non-trivial amount of time between the years 2007-2013. The next bit of C++ I wrote (and really, probably read) was in late 2018.

This means I've at least seen and been part of C++'s last decade of transformation. Numerous features have been added to the language and libraries since I originally started with C++. These changes have made it a more approachable language and it is now easier to write correct code in it.

I stopped paying close attention to C++ when I stopped writing it back in 2013.

This book acted as a good refresher on the language and some C++ programming practices. It also helpfully highlighted new additions from C++14 and C++17. I really appreciated the look at some C++20 features, like Concepts.

Overall, I enjoyed the book. It isn't too long but the tour of the language was useful. This isn't a thrilling page turner but it has useful tidbits in it. It is useful to hear those nuggets of wisdom even if you've already heard them.
Profile Image for Ryan Pangilinan.
149 reviews11 followers
January 13, 2025
4/5!

By no means will I say that I know C++ by reading this. One would definitely have to play around with the features, and I only read it to get an overview. I also would not recommend if you are starting out as a programmer. This is definitely tailored to people who have some coding background not a crazy level, but for someone who is at least familiar with programming concepts.

I merely read this to review, since I haven't used C++ in quite some time now, and also to learn about some of the core features that I definitely did not use before when tinkering with C++. It is a good overview, and the language is not difficult to follow, and it covers mostly the standards up to C++17, and some in C++20.
Profile Image for Mauro.
43 reviews2 followers
March 15, 2020
(I read the second edition.)

A bird-eye's view of the major features of C++ (the language and standard library), written by Mr. C++ himself. It's by no means thorough - it probably won't be enough to get someone coming from, say, a Python background, up and running with C++. Some of the sample code has errors (e.g. the enable_if one).

Still, I found it a worthy read. I've been working with C++ the past few years, but I've gotten far too comfortable with a small subset of the language and neglected to keep up-to-date with recent developments. I didn't even know about class template argument deduction (C++17).
Profile Image for Jeremy.
48 reviews
March 3, 2019
A good book to refresh some C++ knowledge and get introduced to the latest features (C++14 and C++17) as well as the upcoming ones (C++20).

This is definitely more digestible than the C++ reference book and can be read cover to cover.

As a side note, the quality of the paperback version (not the content) is very disappointing and could definitely be better. Many typos and issues with the formatting don't give a good impression...
Profile Image for bimri.
Author 2 books8 followers
October 2, 2022
Seeing how Bjarne captured all the crucial bits of C++ with such finesse was fantastic. (That, that alongside understanding how Higher-Level languages as Python and its likes; got their bearings off subsets like C++.)

To follow along amicably well, this better not be the first book 📙 you pick for programming. (Leave alone a 'C-like' language.)
Profile Image for Rauno Villberg.
168 reviews
October 17, 2020
Great compact overview-introduction.
I'd have preferred even more opinionated code samples - I think cutting out some of the "you can also use this syntax for doing this" parts would have benefitted the overall experience.
And variable naming... well, I guess physical books have length limitations, but I'd have preferred to read longer names.
Good sense of humour too though!
Profile Image for Zeh Fernando .
139 reviews2 followers
September 13, 2023
A bit disjointed, but straight to the point.

On the one hand, this is how I wish more programming books were written: they assume the reader knows programming already and only needs to learn the topic at hand, rather than describing the universe from scratch before getting to its actual content.

On the other hand, it jumps seemingly randomly between topics; sometimes with too much detail, sometimes with not enough; sometimes referencing things that won't be introduced until much later, sometimes the opposite.
Profile Image for Antonio.
14 reviews7 followers
October 24, 2017
Very concise. Good introduction for those starting to learn C++
Profile Image for Josh Davis.
6 reviews
May 11, 2024
Favorite part of this book is Stroustrup complaining about the random stuff he thinks should change or be added in the standard.
78 reviews
March 6, 2019
Relatively short, "A Tour of C++" turned out to be just the book I was after. I, like many others, have found C++ to be an intimidating language, not because any one feature is particularly daunting (except maybe templates - yeesh), but rather because it supports so many different programming styles. Coming from a C background, it was very tempting for me to ease into it as "C with Classes", which C++ originally was, and not go much beyond there. That approach, though, would neither be taking advantage of modern C++, nor would it help me in understanding and working in existing C++ codebases.

To remedy this, I've purchased a number of C++ books. First I bought The C++ Programming Language, which at over 1,000 pages of technical discussion across the entire language, was too dull to read. After reading the first 5 chapters, I could force myself to go no further and decided to use the rest as a reference manual. I then turned to Accelerated C++: Practical Programming by Example, which I found to be an excellent way to get myself back in the habit of programming C++ after a relatively long time off. Doing the exercises as I went was a great way to start programming in a C++ way, rather than a "C with Classes" way. Unfortunately, the book is quite old and is missing the fairly massive updates that came about in C++11. My quest continued, and I after considering a few more tomes I would not have time to read (Effective C++: 55 Specific Ways to Improve Your Programs and Designs, More Effective C++, Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14) I finally found this one: "A Tour of C++".

The tour is precisely what it should be and at the end of every chapter there is an advice section which begins thus, "The material in this chapter roughly corresponds to what is described in much greater detail in Chapters XX-YY of [Stroustrup,2013]." This provides the link to deeper discussion if desired, but more importantly gave me the sampler platter of what the language has become to make sure I have been introduced to mechanisms and notions that I could use while writing C++ right now. Since reading this, I have been able to recognize a problem and think, "Ah, I think there is a C++ idiomatic way of solving this," and then investigate. This is all I really wanted, and I'm quite pleased to recommend this book as a doorway to modern C++. I sincerely hope that it gets updated along with its larger, comprehensive sibling.
Profile Image for Pranjal Singh.
66 reviews24 followers
July 30, 2021
I came to know about this book from the Definitive guide on stackexchange. However, I picked up this book only after feeling dissattisfied with Accelerated C++ which was not as 'cleverly' written.

This book is not only written with a good choice (only covers most important points and add references to the main book C++ Programming Guide if something needs expanding upon) but it demonstrates clever use of the language in each and every example. THIS, is what I was looking for; I had a basic introduction to C++ in undergraduate course but was still struggling with working with code that is written by people with a good amount of experience. This book helps with this situation by bridging that gap between knowledge and experience. The main text covers concepts (knowledge) and the examples cover experience (by not being mere illustrations of the concepts).

That being said, I would not recommend this book for beginners although the authors seems to suggest so with the argument that it's good to get a tour before going in-depth. Nope, this is not a tour of basic C++. This book teaches C++ quite well after you find that the tour (and some practice) you had already in an undergraduate course tour or YouTube tutorial(s) were not actually sufficient to help you work with C++ code written by experienced people.

Note: I have only read this book up to Chapter 6. I may update the review when/if I pick it up again.
Profile Image for Jonathon Jones.
124 reviews2 followers
March 14, 2017
Stroustrup gives a reasonable overview of C++ in this book. I can't take points off for not taking a long time explaining each concept, since there are other books with that job, including his own. But I did have some trouble with it. In particular, the examples left a lot to be desired - he would frequently use variables like "f", rather than something clearer. Indeed, in a particularly bad case, he has both "f" and "F" as variables (one is a function, the other is a function object).

Still, it's a useful, quick trip through the language.
2 reviews
September 4, 2021
There is no seperation of language features by standard and features aren't explained properly. So look elsewhere if you are an experienced C++98 programmer that wants to update his skillset to modern C++.

I couldn't dare to rate it less than three stars though, since this book manages to capture the essence of the ugly monstrosity that we call C++ Programming Language in about 200 pages and it works great as a horror book.



Profile Image for Dave.
112 reviews
November 27, 2014
This is pretty good high level overview of C++. The author demonstrates the basic functions of the language and points the reader to his more detailed books for more information. I plan to keep this book handy, just as a quick reference.
Profile Image for Pavel Milchev.
3 reviews
November 25, 2014
It is a good way to get a short overview of the latest standard(C++11). There is not many details, but just enough to see the possibilities of the language.
Profile Image for Yuri Karabatov.
Author 1 book25 followers
February 8, 2022
When I first started learning C++, I chose “Programming: Principles and Practice Using C++” over the Tour because I needed a tutorial more than a reference. Now, having read the Tour, I can say it was the correct choice.

This book reads much more like an encyclopedia than a textbook, and doesn’t cover some of the more basic C++ features at all, the reader is expected to be already familiar with the language in general. Instead, it puts more recent and advanced features from the later standards (C++14 and C++17) into focus—but that’s why we’re here, aren’t we?

Considering style and tone, you either like Stroustrup’s writing or you don’t. I happen to like it and his attempts at joking, particularly the chapter epigraphs (the very first one is a quote from Henry VI, “The first thing we do, let’s kill all the language lawyers.”) :) He’s optimistic about the state and progress of C++ over the years and it is surprisingly contagious.

There were some points that I found particularly interesting, because I never went too deep into the newer standards:
* I didn’t know you could use a single quote (') as a digit separator.
* I forgot the switch statement didn’t require a default clause (I thought it did).
* The book does a good job explaining the purpose of various methods involved with the Rule of 5 (copy and move assignment and construction, etc.). I was struggling with them previously.
* There is a short explanation of how C++20 modules work, which I wouldn’t have read otherwise.
* Finally, an explanation of templates that helped me remember the syntax. Also, template deduction guides—I didn’t know about those.
* Learned about if constexpr that I didn’t know about previously.
* The concepts overview was (conceptually) interesting but I can’t use C++20 in my current project. Still, I wouldn’t have read about them otherwise and this short intro was clear.
* Realized that I still don’t properly understand variadic templates, even after another explanation. The new fold expressions don’t make them any simpler.
* At the same time, I immediately see how argument forwarding is useful because I have struggled with the same problem in another language. Glad to see it taken care of in C++.
* Finally got a good explanation of the difference between map and unordered_map.
* The book has an overview of how iterators are implemented and how the reader might implement their own to make their classes available to the Standard Library algorithms.
* Learned about mem_fn (calling a member function as a regular function), didn’t know about it before. Not like it’s a new function, but it’s new to me.
* The chapter on numerics wasn’t particularly useful, but it showed how to properly use a random number generator (I previously used the C version).
* Chapter 16 covers the history of C++ and has a neat short list of major features introduced in each of the versions of the standard, and can serve as a quick refresher.

Overall, I quite liked the book and it was exactly what I was looking for after a year’s break of not writing or reading any C++. It is a short, condensed work that covers the language and the Standard Library in sufficient detail to do work, but isn’t as short as a cheatsheet (cheatsheets assume you already know what you are looking for).
25 reviews
October 13, 2018
I bought this book to have a small, yet more or less complete reference to the most important C++ features to this date, and this book fortunately turned out to be exactly that. The author, as usually, starts with the basics, like types, scope, pointers and references, classes, namespace, etc., then slowly but surely dives into the more complex topics, such as templates, variadic templates, containers, I/O, algorithms, concurrency and more. If this structure seems familiar to some, it may be because this book closely resembles that of Programming, Principles and Practice Using C++ (also from Mr. Stroustrup). This book basically goes through the same topics with very similar examples as the other one, but without all the lengthy explanations. It really is just a quick reference with minimal explanations.

Also, the author was very careful not to draw lines between old and new features of the language, so you will almost never find explicit mentions of the existing standards. Even the newest C++17 features were blended in so well, that one could think that they were part of the language from the very beginning, so fortunately this isn't a "C++11 plus whatever came after" type of book, but instead, it is more like "This is what C++ resembles today". Moreover, because it occasionally presents some planned features for C++20 (modules, concepts, contracts, etc.) and gives a heads up on what was/is to be deprecated, one can also formulate an educated guess about where the language is headed right now. Finally, for those who worry that this book's usefulness will be limited by not being able to discern what feature came from which standard (because not everybody has access to a fairly recent compiler), the author provides a very thorough list precisely about this at the end of the book.

This book is of course not for everyone, since it mostly contains only a review, or as the title suggests "A Tour" of what the language provides, and it does so without any lengthy explanations. This general approach might pose a problem to those who are unfamiliar with C++, because there simply isn't enough information to get deeply acquainted with the topics mentioned. Obviously, this was a conscious decision from the author's part to keep this work within boundaries (it is still well over 200 pages) and because there are entire books dealing with some of the chapters (templates, algorithms, concurrency, etc.). Thus, if you are looking for something from which you can learn C++ or some parts of it profoundly, then this book isn't for you. In this case you should go for Mr. Stroustrup's Programming, Principles and Practice or The C++ Programming Language, depending on your experience level. On the other hand, if you are already familiar with most topics and only want to have something you can grab quickly off the shelf when stuck, this will come in very handy. Thus, all in all, I think this book turned out to be exactly what the author intended, and what I expected of it.
Profile Image for Simon.
41 reviews1 follower
August 17, 2019
Short and snappy overview of what constitutes C++ in 2019

Written as an intermediate level book between Stroustrup's beginner level "Programming -- Principles and Practice" and expert level "The C++ Programming Language", this book introduces the core concepts and language features that define C++ with just enough explanation for a moderately experienced programmer to understand what they are used for and when to use them. As such it is probably the ideal book for somebody who is experienced with another language who wants to learn how C++ differs or implements similar concepts, or a programmer familiar with older C++ code who wants to learn what is new in the latest language revisions.

The book is written with Stroustrup's usual clarity and precision, and provides valuable insights into the language's design and evolution from the horse's mouth. "The C++ Programming Language" gives far more detail in this regard (occasionally too much), but as of writing it only covers the language up to C++11 whilst this book is fully up to date with C++17 and contains a preview of the likely features of C++20.

If I was to fault the book at all it is that there is too much focus on "concepts" (the language feature) which are planned for 20 and hence aren't likely available where you work, but I guess that will become less true with time so it's probably good to have them explained somewhere.

Whilst this an excellent overview, once you've read this book you will probably still want and need more information if you want to use C++ effectively. Scott Meyer "Effective C++" and "Effective Modern C++" are the obvious choice for that, and are widely acknowledged as The Bible for C++ programmers. After that, if you have a few years C++ experience under your belt and truly want to master the language then "The C++ Programming Language" is definitive. Maybe by then we'll have a new edition for C++20 as well.
Profile Image for Vladimir K.
3 reviews
February 18, 2018
This is a decent introductory book written by the language's creator himself. It is a good book, but by golly, how can you make SO MANY MISTAKES in such a short book? Stroustrup has a hefty errata page on his website, and it's not even complete.

The book is extremely concise. Sometimes the author manages to convey the condensed design choices and concepts very well, sometimes it leaves the reader scratching their head and googling the same concepts for more information on the topic.
While I do believe this might be the best introduction to the language that does not try to sacrifice its hidden depth for the sake of simplicity, I also think it was very hastily written, poorly typeset, and never fully fixed in the newer editions.

If you do decide to go with the book, read the first 6 chapters very carefully, for nearly every paragraph expands into a separate concept of the language, and you are risking to miss them if you don't pay enough attention expecting that everything will be explained in greater depth later, because it almost certainly will not.

Tread carefully.
22 reviews
May 2, 2023
I very much enjoyed reading this book. As the creator of C++, Bjarne knows what he's talking about, and it's cool to read about some of his opinions and takes on the language.

While this book alone won't have a big impact on its own, I definitely rate it 5/5. It's a short but comprehensive tour of all the important C++ features without going too deep into the details.

What sets this book apart is its focus on how to program C++ the right way - something that many struggle to do. The section at the end helps to put the language into the right perspective.

"A Tour of C++" is not a book for newcomers. Even developers coming from other languages might find it a bit tricky to follow at times. But for those who already have some C++ skills and are looking to understand what "Modern C++" is about, this book is an excellent read.
2 reviews
March 30, 2025
Great for learning old and new language features (up to C++20). Does not cover everything in depth, but that was expected for this book. Programming: Principles and Practice Using C++ (C++ In-depth) is the alternative. Notable additions include:

1. Modules for separate compilation as opposed to headers. Compilation time is better with modules because import only compiles modules once compared to once for each translation unit, and modules only export interfaces.

2. Can use suffix return types such as auto exit(int) -> void; instead of void exit(int);

3. The spaceship operator <=> for three-way comparisons.

4. Constrained templates that are checked at compile time and not instantiation time, so error messages are better.

Additionally, the author (of the book and C++) provides great insight to his personal style and workarounds for language deficiencies.
Profile Image for Foxtrot.
46 reviews
July 2, 2019
A book quickly read, valuable as a reference book. This book is not an introduction to programming. It is more a panorama of the critical C++ features, the language evolution as well as best practices.

Already knowing an object-oriented language will prove useful to grasp lots of the concept discussed.

Having some basics of C before reading this helped me understand why some language features are the way they are in C++.

Don't expect to write top-notch C++ code after reading this rather short book (200 pages). However, with the advice at the end of each chapter and the list of references provided, you know where to find information on how to adequately address a challenge you are facing.
Profile Image for minhhai.
137 reviews14 followers
February 17, 2025
A concise overview of the features and techniques in C++, written by a master.

The tour covers all important concepts of modern C++ (up to C++20): OOP, templates, containers, concurrency, etc. In each topic, the book guides us through basic techniques, with short and clear examples, and any cautions when using them.

It's not a mere collection of definitions and rules; the book is full of useful advice and perspectives. Apparently, this is not for beginners or for reference, but for intermediate C++ programmers who want to review the core features of the language and brush up their techniques.

It's very well structured and written. The examples are short enough and to the point. I love the personal tone of the book as well. Highly recommend it for C++ practitioners.
Profile Image for Paul.
64 reviews
October 19, 2018
IMHO everyone write software who have some knowledge of C and C++ should read it. It may not offer
as much as to novice programmer, but it is a good tour and have great coverage. And been a practical guy and the creator of C++ programming language, for how to write C++ code, it's the best you can ever get by read a book.

On the other hand, as the author mentioned, it's basically a short version of The C++ Programming Language book he wrote. So it's somehow shorter to follow as in a couple of cases, the example and explanation doesn't feel completed.

All in all, well worth my time to read to book.
Profile Image for DW.
529 reviews6 followers
March 28, 2025
I last learned and used C++ before C++11 came out (so no smart pointers). Wow, how much has changed since then, particularly with C++20. My mind was blown by import replacing and updating #include, which let's face it, is horribly clunky. Wonder how long it's going to take until most C++ uses import? Ten, twenty years?

The tone was fun, but I had to skip the middle chapters because it was just too dry, and not everyone has a C++20 compiler anyway so I needed to learn how to do things the C++17 way. But it was a great overview.
13 reviews
May 13, 2025
Ngl, I finished half the book, and just had to put it down. Might be one of the most dry books I’ve ever read, even though it’s short. Also, I feel like the author might know C++ well enough to the point where he doesn’t know what would actually interest a developer? He talks more about polymorphism than anything unique to C++, even though anybody who’s been programming for a while wouldn’t be interested in it. So yeah, not great. Kind of wasted a weekend(kept zoning out because it was boring af, the chapters themselves are quite short)
Displaying 1 - 30 of 116 reviews

Can't find what you're looking for?

Get help and learn more about the design.