Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

BenjaminYde/CPP-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

87 Commits

Repository files navigation

CPP Guide

Welcome!

The CPP Guide repository is meant to be a guide / quick reference for C++ developers where I try to get to the point so you can spend more time programming. This guide is Markdown, so it is easily opened using Visual Studio Code or Github. It contains extensive documentation, code examples and best practices.

A Note on Reading This Guide

Before you dive in, it's important to understand that this guide is structured by topic, not by difficulty. There is no prescribed "beginner to advanced" path. Feel free to jump to any section that is relevant to your needs. A developer needing to understand std::vector can go straight there, while another might need to brush up on "RAII" or "CMake Presets."

Execute Code Examples

Explore the examples directory for interactive C++ code examples, easily executable inside a Docker DevContainer within Visual Studio Code. This setup ensures a consistent and streamlined coding environment, ideal for learning and experimentation.

Table of Contents

Strings, Streams & Files

Containers

Memory Management

Functions

Object Oriented Programming (OOP)

General

Inheritance

Virtual Functions

C++ Compilation, CMake & Tooling

Compilation Process

CMake

Tooling

Typing, Casting & ConstExpr

Concurrency

Design Patterns & Idioms

Todo

  • Design patterns
  • Templates
  • Error handling

References

General

  • CPP Reference
    • This is more of a reference but contains examples and explanations that can serve as a learning resource.
    • Link here
  • Online C++ Compiler
  • C++ Core Guidelines
  • Google C++ Style Guide

Tutorials

  • LearnCpp
    • Devoted to teaching you how to program in C++. Whether you've had any prior programming experience or not, the tutorials on this site will walk you through all the steps to write, compile, and debug your C++ programs, all with plenty of examples.
    • Link here
  • GeeksforGeeks
    • Offers a variety of tutorials and exercises ranging from basic to advanced topics.
    • Link here

Interviews

  • C++ Interview Questions and Answers (geeksforgeeks.org)

Books

  • Software Architecture with C++ (Paid)
    • Design modern systems using effective architecture concepts, design patterns, and techniques with C++20. By Adrian Ostrowski & Piotr Gaczkowski, April 2021.
    • Link here
  • Professional C++ (Paid)
    • Professional C++, 5th Edition raises the bar for advanced programming manuals. By Marc Gregoire, Feb 2021.
    • Link here
  • Modern CMake for C++ (Paid)
    • Write comprehensive, professional-standard CMake projects. By Rafal Swidzinski, May 2024.
    • Link here
  • CMake Best Practices (Paid)
    • Write comprehensive, professional-standard CMake projects. By Dominik Berner & Mustafa Kemal Gilor, Aug 2024.
    • Link here
  • Advanced C and C++ Compiling (Paid)
    • Understand the structure and purpose of the binary files produced by the compiler.
    • Link here
  • Learning C++ (Free)
    • Free unaffiliated eBook created from Stack Overflow contributors.
    • Link here
  • More C++ Idioms (Free)
  • C++ Programming: Code patterns design (Free)
  • C++ Notes for Professionals book (Free)