This is a collection of C++ projects exploring many aspects of object-oriented programming.
What is learned is each module is normally re-used in the ones after, and the last exercise is often a summation of what came before.
For a more advanced project about creating containers in C++, you can go to my other repository.
- Claptrap (Inheritance and Diamond problem)
- AMateria (Object Factory, Interfaces/Abstract classes)
- Intern (Exceptions and everything else)
- Introduction and transition from C to C++ (aka using less C functions and more C++ functions when possible)
- Memory allocation
- Reference and pointers to members
- Usage of the switch in CPP
- Ad-hoc polymorphism
- Overloads
- Orthodox canonical classes
- Inheritance;
- "Diamond" problem
- Subtype polymorphism (virtual functions and such)
- Abstract classes / interfaces
- Try/Catch
- Creating custom exceptions
- static_cast
- reinterpret_cast
- dynamic_cast
- Templates
- Functions
- Mock iterator
- Custom class template Array
- Templates
- Function taking a templated container
- Create a templated Span container with some functions
- Create a templated MutantStack which inherit std::stack
Final C++ project : ft_containers
In depth exploration of templates and std::containers.