Object-oriented Programming in C++
Bachelor of Science, École Polytechnique
Organisation
Presentation
Software used in the course
Surviving in the terminal
Surviving with GDB
Surviving with git
Setting up the gitlab repository
All the labs
Resources
Class #1
Imperative programming (C)
Lessons
Introduction
Compilation
Variables and types
Operators
The sudoku solver (lab)
Types, arrays and functions
Basic UNIX environment
Class #2
Structures (C)
Lessons
Array and structure
Call frames
Pointers
The Sierpinski triangle (lab)
Arrays and structures
Functions and call frames
Type conversion and cast
git and gitlab
Basic Makefile
Class #3
Pointers (C)
Lessons
Memory management
The army of monsters (lab)
Pointers and memory management
Macros
Advanced Makefile
Class #4
Objects and methods (C++)
Lessons
Modular programming
Instance method
My vacation in Bilbao (lab)
Modular programming
Object and instance methods
Class #5
Constructors (C++)
Lessons
Constructors
Namespaces
Streams, strings and nullptr
Abstract Syntax Tree (lab)
Constructors and destructors
Namespaces
Streams and strings
Graphs
Class #6
Inheritance (C++)
Lessons
Inheritance
Templates
The Lanister bank, part I (lab)
Inheritance
Templates
Visibility
Tree and generic programming
Class #7
References (C++)
Lessons
References
Operator overloading
Visibility
Copying vs moving
The Lanister bank, part II
References
Operator overloading
Iterators
rvalue reference
Classical containers