Skip to content

cppmsg/modern_cpp_course

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modern C++ course

logo

What this course is?

  • Free and open-source (MIT License).
  • This course aimed at inexperienced developers as well as experienced developers with no knowledge of Modern C++.
  • This course covers concepts from C++98 to C++23, while keeping modern C++ in mind.
  • The corresponding C++ version is indicated for each concept and feature.
  • This course was inspired in part by cpluspluscourse.

Example

source.cpp

hello_world_soure

CMakeLists.txt

hello_world_cmake

Console output

hello_world_outputpng

Content

  • course contains Keynote (macOS), PowerPoint (Windows) and PDF (Universal) files.
  • docs contains diagrams and pictures from the slides.
  • examples contains examples from the slides.
  • exercises contains exercises from the slides.

Course

Outline

  • Introduction
    • What this course is?
    • History
    • Wy using C++?
    • References
    • C++ development tools
  • Language basics
    • Hello World
    • Core syntax and types
    • Arrays and Pointers
    • Scopes / namespaces
    • Struct and enum types
    • References
    • Functions
    • Operators
    • Control structuees
    • Headers and interfaces
    • auto keyword
    • inline keyword
    • Assertions
  • Object Oriented Programming (OOP)
    • Objects and Classes
    • Inheritance
    • Constructors / Destructors
    • Static members
    • Allocating objects
    • Advanced Oriented Object
    • Type casing
    • Opertor overloading
    • Function objets
    • Name Lookups
  • Core Modern C++
    • Constness
    • Constant expressions
    • Exceptions
    • Move semantics
    • Copy elision
    • Templates
    • Lambdas
    • The Standard Library
    • Ranges
    • RAII and Smart pointers
    • Initialization
  • Modern C++ Expert
    • The <=> operator
    • Variadic templates
    • Perfect forwarding
    • SFINAE
    • Concepts
    • Modules
    • Coroutines
  • Advanved Programming
    • Using CMake
    • ...

About

Modern C++ course

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.1%
  • CMake 10.9%