- Learn C++ - https://www.learncpp.com -

0.1 — Introduction to these tutorials


Welcome to the Learn C++ tutorials! Above all else, these tutorials aim to make learning C++ easy.

Unlike many other sites and books, these tutorials don’t assume you have any prior programming experience. We’ll teach you everything you need to know as you progress, with lots of examples along the way.

Whether you’re interested in learning C++ as a hobby or for professional development, you’re in the right place!

Tutorial structure

The tutorials in this introductory chapter are aimed at giving you some context around what C++ is, how it came about, how programs work, and what software you need to install to create your own programs. You’ll even write your own first program.

Further chapters will explore different parts of the C++ language. In the first chapter (chapter 1), you’ll get a broad but shallow overview of many fundamental C++ concepts, so we can start writing some simple programs. Further chapters will explore those concepts in depth, or introduce new concepts.

Each chapter has a theme, with all of the sections underneath it being generally related to that theme. There is no suggested amount of time that you should spend with each lesson or chapter; progress through the material at a pace that is comfortable for you.


Before we get started, lets hit on a couple of important goals of these tutorials:

Getting the most out of these tutorials

As you go through these tutorials, we recommend a number of practices to maximize your learning experience:

Common site-related questions

Q: How do I sign up for the site? How do I get a login? How do I get an avatar for the comment section?

All parts of this site are accessible anonymously -- therefore, no user account or signup is needed!

Q: These tutorials were originally written in 2007. Are they still relevant?

Yes, absolutely.

C++ doesn’t change very often, and when it does, the new content is largely additive. The tutorials have also been updated periodically based on language changes and reader feedback.

Q: Is there a PDF version of this site available for offline viewing?

Unfortunately, there is not. The site is able to stay free for everyone because we’re ad-sponsored -- that model simply doesn’t work in PDF format. You are welcome to convert pages from this website into PDF (or any other) format for your own private use, so long as you do not distribute them.

Q: What should I do if I get stuck on a concept?

If you don’t understand something:

  • Read through the comments. Other readers may have encountered similar challenges.
  • Scan through the next lesson in the series -- your question may be answered there.
  • Use a search engine to see if your question (or error message) has been addressed elsewhere.
  • Ask your question on a site that is designed for programming Q&A, like Stack Overflow [1].

If all else fails, skip the material you don’t understand, and come back to it later. You may find that something that was hard to understand is easier with the additional knowledge and context provided by other articles.

Q: What do I do if I forget what something means?

Use the Site index [2]. Look up any topics you want to know more about there, and you’ll find links to the lessons where that topic is discussed.

Q: How do I get an avatar for the comment section?

The comment section uses gravatars. You can create one on gravatar.com [3]. Click the “Create your own gravatar” button and sign up. Your gravatar will be connected to your (optionally provided) email address.

Q: Can you do a dark mode for this site?

Not easily, but you can! See darkreader.org [4].

Finally, one small nag: This site is free because it is ad-supported. If you find yourself enjoying the lessons, please consider disabling your ad blocker.

Alright, let’s get on with it!

0.2 -- Introduction to programming languages [5]
Index [6]
No previous lesson [7]