Skip to content
Jeff edited this page May 31, 2016 · 1 revision

Topics

Git

Basics

STL Containers

User defined types

  • structs v. classes
  • Constructors
    • Copy Constructors
    • Destructor
    • Delegating Constructors
    • Explicit Constructors
  • POD
    • Trivial Classes
    • Standard Layout
  • Initialization Lists
  • In class initializers
  • Initialization Methods {}, (), =, or = {}
  • RAII.
  • [include guard v. #pragma once](include guard).
  • objects.
    • [understand what functions get automatically generated](
      • default
      • delete
    • Overloading operators.
    • public v. private v. protected.
    • move construction and assignment (Rule of 5).
    • Rule of 3/5/0
    • mutable

Inheritance and Abstraction

  • Access Control public, private, protected
  • Types of inheritance public private protected
  • virtual
  • Interfaces (Abstract Classes).
  • Construction and Destruction (When to call the Base Class).
  • override
  • final
  • Multiple inheritance
    • Diamond pattern

Exceptions and error handling.

Regular Expressions (C++11)

  • What is a regular Expression?
  • <regex>

Threading with the standard library (C++11)

Templates

  • type deduction
  • SFINAE
  • template functions
  • template classes
  • template specialization

Dealing with legacy code

  • Combining C and C++

    • C headers in the standard library.
    • extern "C" and C++ name mangling.
  • Exceptions

  • Regular Expressions

  • inline

  • static

  • const

  • constexpr

  • enable-if

  • std::function

  • regular expressions

  • SFINAE

  • Small object optimization

  • type erasure

  • virtual friend functions

  • virtual constructor

  • Inner class

  • ScopeGuard

  • override

  • noexcept

  • exceptions

    • Look at "More Effective C++" whole section on exception.
  • std::move

  • std::forward

  • emplacement v. insertion.

  • template

    • variadic templates
  • Inter Process Communication

  • Threading Auxillary Topics =============

  • git workflow

  • unicode

Online References

Teaching References