Skip to content

BenjaminYde/CPP-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

61 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

C++ Guide πŸ“š

πŸ‘‹ Welcome!

This 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

πŸ› οΈ CMake & Tooling

πŸ“œ Strings

πŸ“¦ Containers

πŸ›οΈ Object Oriented Programming OOP

General

Operator Overloading

Inheritance

Virtual Functions

🧠 Memory Management

🎭 Functions

πŸ”— 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 ŚwidziΕ„ski, 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)