/42_CPP

42's CPP modules [12/2020-01/2021] [Ubuntu18]

Primary LanguageC++

42_CPP

Learning CPP basics. /!\ MAKE FUNCTIONS AND MEMBERS AS CONST AS POSSIBLE!

CPP00:

  • Namespace
  • Inputs and outputs
  • Class:
    • .hpp : class declaration / .cpp : class definition
    • classes and instances
    • constructors and destructors
    • initialization lists
    • public vs private members
    • struct vs class
    • getters and setters
    • comparing instances
    • member vs non-member attributes of a class
    • member pointers and function pointers

CPP01:

  • Heap allocation: new and delete
  • References vs pointers
  • Filestreams

CPP02:

  • Polymorphism adhoc (function overload depending on param)
  • operators overload
  • Canonical Form (Coplien)
  • Fixed point numbers

CPP03

  • Inheritance
  • Public vs protected vs private inheritance modes
  • Virtual inheritance
  • Multiple inheritance

CPP04

  • Sub-typing polymorphism, virtual members and methods
  • Pure methods, abstract classes and Interfaces

CPP05

  • Nested classes
  • Exceptions

CPP06

  • Casts in C
    • Conversions (explicit vs implicit)
    • Reinterpretation (conversion identitaire)
    • Demotion from const to non-const
  • Casts in C++
    • Upcast vs Downcast
    • Static cast
    • Dynamic cast
    • Reinterpret cast
    • Const cast
    • Cast operator
    • Explicit

CPP07

  • Parametric macros in C
  • C++ templates
  • Function templates
  • Class templates
    • Default type
    • Partial and total specialization

CPP08

  • STL
    • Containers: lists, maps, vectors... and iterators
    • Algorithms (eg: for_each)

Written in december 2020 - january 2021.