Skip to content

jjudyyang/OOP

Repository files navigation

Object Oriented Programming

About

Personal repo for C++ Object Oriented Programming Concepts

Topics

Pre Midterm

  • Input/Output
  • File streams and string streams
  • C++ String Operations
  • Default Function Parameters
  • Function Overloading
  • References (rvalues and l values)
  • Pass by value and pass by reference
  • Dynamic Memory
  • Operator overloading

C++/Intro to OOP

  • Preprocessor directives (processed by the preprocessor before actual compilation - begin with the # symbol)

  • Separate compilation and include guards?

  • Classes

  • Constructor

  • Object Creation (MIL, implict conversion)

  • Big 5

  • Destructor

  • Copy constructor

  • copy assignment operator

  • Copy/Move Elision

  • Visibility (public & private), class keyword vs struct

  • Encapsulation

  • Iterators (auto type, range based loops)

Post Midterm

  • Inheritance
  • 3 Access Levels (public, private, protected)
  • Dynamic Dispatch/Polymorphism
  • Virutal Methods vs Pure Virutal Methods
  • Abstract/Concrete Classes
  • Partial assignment/Mixed Assignment/Polymorphic Assignment

UML

  • fields
  • has-a
  • owns-a

Design Patterns

  • observer pattern
  • decorator pattern
  • factory method pattern
  • template method pattern
  • iterator pattern

Idioms

  • RAII
  • NVI
  • pImpl (used in exception safety)
  • copy and swap

Standard Template Library

  • Vector and common vector functions
  • Vector Iterator/Reverse Iterator
  • Map and common map functions
  • Iterate through map

Casting

  • static_cast
  • dynamic_cast
  • reinterpret_cast
  • const_cast

VTables and virtual inheritance

Exception Safety, throw, catch

  • basic
  • strong
  • no throw

Coupling, Cohesion

About

Object Oriented Programming Concepts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published