Skip to content

Latest commit

 

History

History
122 lines (104 loc) · 3.33 KB

File metadata and controls

122 lines (104 loc) · 3.33 KB

Index

A Taste of C++

0 Introduction

1 Environment

2 Hello, World!

3 A Closer Look at Hello, World!

4 Abstraction, Blackboxes and Magic

Basic C++

5 C++ Language Features

  • Types and Type Systems
  • Types in C++
  • auto and Type-deduction
  • const, volatile and Fixed width Integrals
  • Operators
    • Arithmetic and Assignment
    • Logical and Comparison
    • Increment and Decrement
    • Precedence and Associativity
  • Loops
    • for, while and do-while
  • Functions and Lambdas
    • Motivation and Usage
    • Pass by Reference and const Parameters
    • Recursion
    • Function Overloading
  • User Defined Types
    • Encapsulation and classes
    • Access specifiers public & private
    • static, const and mutable members
    • Member Functions and the const suffix
  • Introduction to the Standard Library
  • Containers
    • vectors
    • string and stringstream
    • Range-based for and Iterators
  • Algorithms
    • find and count
    • find_if, for_each and transform
    • Introduction to Lambdas and inline Predicate Functions
  • Exceptions
    • Handling unexpected conditions
      • throwing exceptions
      • catch blocks and cleanup
      • Where is finally?
    • std::exception
    • Exception Guarantees

Object Oriented Programming features of C++

6 OOP features in C++

  • Inheritance and code-level reuse
    • protected access specifier
    • Function Hiding
    • Multiple Inheritance
  • Polymorphism
    • Operators for User-defined Types
    • Function Overriding instead of Function Hiding
    • References as facilitators of Polymorphism
    • Achieveing Function Overriding with virtual and override
    • Preventing Function Overriding with final
    • Interfaces in C++ via Pure virtual Functions

The Rest of C++

7 Misc Topics in C++

  • Enumerations and enum class
  • Name collision and namespaces
  • Templates
  • Streams
  • Files

8 The C in C++

  • Overview of the Compilation Process
    • Stages of Compilation
    • Linkage & Visibility
  • Low-level and Machine dependent stuff
    • <cstdint> and integrals with fixed sizes
    • volatile, static-linkage and extern
  • Bitwise Operator and Hacks
  • unions and thier (ab)uses
  • Arrays and Pointers
    • Arrays and std::array : The Lesser vectors
    • Pointers and the Heap
    • Memory Management in C++ : Introducing new and delete

9 Pointers and Memory Management in C++

  • Raw Pointers in C++ and RAII
  • Smart Pointers and Ownership: unique_ptr and shared_ptr
  • The this Pointer
  • How virtual really Works

10 Another Look at the STL

  • Useful Standard Containers
    • lists and deques
    • maps and sets
  • Useful Standard Algorithms
    • swapping and copying
    • fill, generate and rotate

Real-world C++

11 Existing code & Legacy C++

  • Verbose Loops
  • Repeated virtuals and missing overrides
  • Raw new and delete
  • auto_ptrs and Function Objects

12 Mixing with C code

  • char* and Friends
  • C-style I/O: printf and scanf
  • Name-mangling and extern C
  • Getting vectors and strings to play nice with C code