CS11 Intro C++

This is a lecture note of CS-11 C++ track from Caltech. I summarized materials of Spring 2019-2020. The track detail is on the CS11 C++ Track page.

What I've Learned

I am familiar with the language a bit, so it was easy to follow the detail. The lecture explained some concepts deeply, which I enjoyed. The later tracks are mainly focused on the optimization and introduce the rules that I can utilize during the process.

  • Building process (preprocessor, compiler, and linker)
  • Basic of class and member functions
    • Declaration & definition
    • Access Modifier: public, private, protected
    • Accessors / mutators
    • Pass by value, pass by reference
    • Constructors
    • Operator overloading
  • Difference between struct and class
  • Scope
  • C++ standard library - file I/O, vector, string
  • Stream
  • Heap memory
  • The rule of Three, The rule of Five, The rule of Zero
  • Member Initializer Lists
  • Build tool make

Also, the lab materials were great to study the detail because it cames with testing suites.

Lecture Summary

I made some notes when I was studying this track for later. These notes are too simplified and omitted some. I recommend checking the track slides at least once before seeing my notes.

  • Lecture 1: Overview, compiler & build, classes
  • Lecture 2: Build phase, structs & vector, exception handling
  • Lecture 3: fstream, scope, pass by value/reference
  • Lecture 4: GNU make, Doxygen
  • Lecture 5: Operator overloading, Constructors, Output Stream
  • Lecture 6: Copy and assignment operator with Heap, Inline
  • Lecture 7: Copy and Move, The Rule of Five, Member Initializer Lists

Afterwards