|
|
|
Important
- Module 00 -> basics about Namespaces, classes, member functions, stdio streams, initialization lists, static, const, and some other basic stuff
- Module 01 -> foundations about Memory allocation, pointers to members, references and switch statements
- Module 02 -> training Ad-hoc polymorphism, operator overloading and the Orthodox Canonical class form
- Module 03 -> weird Inheritance, lol
- Module 04 -> more Subtype Polymorphism, Abstract Classes, and Interfaces
- Module 05 -> Repetition and Exceptions
- Module 06 -> C++ casts (static_cast<>, dynamic_cast<>, const_cast<>, reinterpret_cast<>)
- Module 07 -> C++ templates
- Module 08 -> Templated containers (vector, map, stack, etc), iterators, algorithms
- Module 09 -> STL (Standard Template Library) algorithms and function objects, to get practice with std::map, std::stack, std::vector, and std::deque
A set of convenient Makefile targets is provided to help you work with Docker and development tasks in this project:
| Target | Description |
|---|---|
| build | Build and start the Docker container in detached mode. |
| go | Build/start the container, run preparations, then open an interactive shell in the app. |
| stop | Stop the running Docker container. |
| down | Stop and remove the Docker container and associated resources. |
| reload-docker | Stop, rebuild, and restart the Docker container. |
| ps | List all Docker containers. |
| deep-clean | Clean up unused Docker builder cache (frees disk space). |
To run any of these tasks, use:
make <target>Each module (Module00-Module09) has a consistent set of Makefile targets:
| Target | Description |
|---|---|
| make | Build exercises + run all tests |
| make test | Run all tests (Google Test) |
| make test-exNN | Run tests for specific exercise (e.g., make test-ex00) |
| make build_cmake | Build with CMake system |
| make build_exercises | Build individual exercises only |
| make build_all | Build with both systems |
| make clean | Clean both build systems |
| make fclean | Deep clean both systems |
| make re | Full rebuild |
| make help | Show all available targets |
# Run all tests for a module
cd Module06 && make test
# Run specific exercise tests
cd Module06 && make test-ex01
# Build and run a specific exercise
cd Module06/ex00 && make go
