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