Back to Basics: Object-Oriented Programming in C++
summary
Covers concrete C++ practices: use a constructor initialization list (four cases require it), prefer the rule of zero for resource management and immediately delete copy/assign when you add a destructor, prefer value semantics and stack allocation unless an object must outlive its scope, and use templates/static polymorphism for performance instead of virtual calls. Demonstrations include Point/Rectangle, pet and employee models and a spreadsheet cell design, showing that the state pattern avoids brittle inheritance and that these patterns compile and behave as described.
AI-written summary · about
chapters (47)
- 0:00Introduction
- 0:26Build Acceleration
- 0:55Agenda
- 1:17ObjectOriented Programming
- 2:36Classes and Objects
- 2:51Stick to what you do
- 3:25Singular responsibility
- 3:36Crash syntax
- 4:23Points
- 4:38Public
- 4:52Private
- 5:11Data Members
- 5:57Member Functions
- 6:35Object Size
- 7:21Header and CPP
- 8:38Constructors
- 11:13Efficiency
- 13:03Initialization
- 13:40Contractual Delegation
- 14:20Copy Constructor
- 15:25Shallow Copy
- 17:00Assignment Operator
- 19:52Constructor
- 20:30Explicit Constructor
- 23:27mutable
- 25:44zero
- 28:38Inheritance
- 30:28Polymorphism
- 32:09Virtual Functions
- 33:11Usage Example
- 33:54Summary
- 34:25Part 2 Beyond the Classic Model
- 34:54Arrays vs Stacks
- 36:32Inheritance is overrated
- 36:50Rectangle vs Square
- 38:23Developer vs Engineer
- 40:54Employee
- 41:15State Pattern
- 43:06Strategy
- 43:44Type
- 45:59Factory Inheritance
- 49:42Substitution
- 51:53Too much abstractions
- 53:02Keep abstraction
- 53:39Make it hard to use incorrectly
- 54:26Implement the pet type not the pet
- 57:05Value Semantics








