Skip to content

utilForever/modern-cpp-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modern C++

A curated list of Modern C++ articles, examples, tutorials, frameworks, libraries, and shiny things.

Notice

2017/03/01 - I'll add examples for C++17 features.

Articles

English → Korean

The Four Polymorphisms in C++

Examples

Classes

polymorphism.cpp -

Declaration

scoped_enum.cpp -

Exceptions

stack_unwinding1.cpp -

stack_unwinding2.cpp -

try_catch_throw1.cpp -

try_catch_throw2.cpp -

Expressions

operator_overloading.cpp -

Keywords

alignas.cpp -

const_cast.cpp -

default.cpp -

delete.cpp -

dynamic_cast.cpp -

nullptr.cpp -

reinterpret_cast.cpp -

static_cast.cpp -

typeid.cpp -

Libraries

Thread support

async.cpp -

future.cpp -

promise.cpp -

Miscellaneous

RAII-rule_of_five.cpp -

RAII-rule_of_zero.cpp -

Templates

class_template.cpp -

function_template.cpp -

Tutorials

C++ Programming Basic Course Slides (presented by Korean)

1st Study: From C to C++ (1/4)

  • printf, scanf → cin, cout
  • bool type
  • auto keyword

2nd Study: From C to C++ (2/4)

  • Range-based for
  • malloc, free → new, delete
  • NULL → nullptr
  • static_cast

3rd Study: From C to C++ (3/4)

  • Scoped enum
  • Binary literal, separator
  • std::string

4th Study: From C to C++ (4/4)

  • Reference
  • Function overloading
  • Namespace

5th Study: Object-Oriented Programming (1/8)

  • Class and object
  • Access modifier: public, protected, private
  • Information hiding, Encapsulation

6th Study: Object-Oriented Programming (2/8)

  • Constructor
  • Destructor
  • this pointer

7th Study: Object-Oriented Programming (3/8)

  • Copy constructor
  • Copy assignment operator
  • Shallow copy / deep copy
  • Rule of zero / rule of three

8th Study: Object-Oriented Programming (4/8)

  • Member variable
    • static
    • const
    • reference
    • const reference
  • Member function
    • static
    • const
    • default parameter

9th Study: Object-Oriented Programming (5/8)

  • Inheritance
  • Method overriding
  • Something about superclasses
  • Up / down casting

10th Study: Object-Oriented Programming (6/8)

  • Polymorphism
  • Pure virtual method

11th Study: Object-Oriented Programming (7/8)

  • Operator Overloading

12th Study: Object-Oriented Programming (8/8)

  • Multiple inheritance
  • vtable (virtual function table)
  • RTTI(Run-Time Type Information)

13th Study: Exception Handling

  • Exception handling in C++
  • try ~ catch ~ throw
  • Standard exception classes
  • Stack unwinding

14th Study: Generic Programming

  • Generic programming in C++
  • Function template
  • Class template

15th Study: TBA

Basic Curriculum

  1. From C To C++
  • (1st) printf, scanf -> std::cin, std::cout
  • (1st) bool type
  • (1st) auto
  • (2nd) Range-based for
  • (2nd) malloc, free -> new, delete
  • (2nd) NULL -> nullptr
  • (2nd) Casting 1: static_cast
  • (3rd) Scoped enum
  • (3rd) Binary literal, Separator
  • (3rd) std::string
  • (4th) Reference
  • (4th) Function overloading
  • (4th) Namespace
  • (TBD) decltype
  • (TBD) Casting 2: dynamic_cast, const_cast, reinterpret_cast
  • (TBD) typedef -> type alias
  • (TBD) Uniform initialization
  • (TBD) Initializer list
  • (TBD) Lambda expression
  • (TBD) Lvalue / Rvalue reference
  • (TBD) Move semantics
  • (TBD) Perfect forwarding
  • (TBD) Smart pointer: unique_ptr, shared_ptr, weak_ptr
  1. OOP: Object-Oriented Programming
  • (5th) Class and Object
  • (5th) Access modifier: public, protected, private
  • (5th) Information hiding, Encapsulation
  • (6th) Constructor
  • (6th) Destructor
  • (6th) this pointer
  • (7th) Copy constructor
  • (7th) Copy assignment operator
  • (7th) Shallow copy, Deep copy
  • (7th) Rule of zero, Rule of three
  • (8th) Member variable: static / const / reference / const reference
  • (8th) Method: static / const / method overloading / default parameter / inline
  • (9th) Inheritance
  • (9th) Method Overriding
  • (9th) Something about superclasses
  • (9th) Up / Down casting
  • (10th) Polymorphism
  • (10th) Pure virtual method
  • (11th) Operator overloading
  • (12th) Multiple inheritance
  • (12th) vtable, RTTI
  • (TBD) Special functions 3: Move constructor, Move assignment operator
  • (TBD) Special functions 4: std::initializer_list constructor, Inheriting constructor
  • (TBD) Rule of five
  • (TBD) =default, =delete
  • (TBD) explicit keyword
  • (TBD) friend keyword
  • (TBD) mutable
  • (TBD) overriding keyword
  • (TBD) final keyword
  • (TBD) PIMPL
  1. Exception Handling
  • (13th) Exception handling in C++
  • (13th) try ~ catch ~ throw / throw list (noexcept)
  • (13th) Standard exception classes
  • (13th) Stack unwinding
  • (TBD) Nested exception
  • (TBD) Function-try-block
  1. Generic Programming: Template
  • (14th) Generic programming in C++
  • (14th) Function template
  • (14th) Class template
  • (TBD) Template specialization
  • (TBD) Partial specialization
  • (TBD) Template inheritance vs template specialization
  • (TBD) Template aliases
  • (TBD) decltype + auto
  • (TBD) Function template
  • (TBD) Template recursion
  • (TBD) Variadic template
  • (TBD) Variable template
  • (TBD) Type inference
  • (TBD) SFINAE
  • (TBD) Template metaprogramming
  • (TBD) Type traits
  • (TBD) constexpr
  1. Concurrency: Multithreading Programming
  • (TBD) Race condition, Deadlock
  • (TBD) Atomic task
  • (TBD) thread
  • (TBD) mutex, lock, call_once
  • (TBD) condition_variable
  • (TBD) async
  • (TBD) future, promise
  • (TBD) Thread pool
  1. STL: Standard Library
  • (TBD) vector, deque, list, array
  • (TBD) queue, priority_queue, stack
  • (TBD) pair, tuple, map, multimap, set, multiset
  • (TBD) algorithm
  • (TBD) function
  • (TBD) forward_list
  • (TBD) unordered_map, unordered_multimap, unordered_set, unordered_multiset
  • (TBD) bitset
  • (TBD) ratio
  • (TBD) chrono
  • (TBD) random
  • (TBD) regular expression

About

A curated list of Modern C++ articles, examples, tutorials, frameworks, libraries, and shiny things.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages