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
Past exams
2024-2025
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