Module 00: Basics of C++
- ex00: Megaphone - Create a program that prints input arguments in uppercase.
- ex01: My Awesome PhoneBook - Implement a simple phonebook application for storing and retrieving contacts.
- ex02: Your Dream Job - Recreate a missing source file for an
Accountclass using provided logs and a header file.
Module 01: Memory and Pointers
- ex00: BraiiiiiiinnnzzzZ - Create a
Zombieclass and implement functions for creating and announcing zombies. - ex01: Moar brainz! - Manage dynamic memory by creating a function to create a horde of zombies.
- ex02: HI THIS IS BRAIN - Work with pointers and references to understand memory addresses and data manipulation.
- ex03: Unnecessary violence - Use references and pointers to manipulate object data in different ways.
- ex04: Sed is for losers - Implement a program that reads a file and replaces specific strings.
- ex05: Harl 2.0 - Create a
Harlclass that outputs log messages at various severity levels.
Module 02: Canonical Form and Operator Overloading
- ex00: My First Canonical Class - Implement a class that follows the canonical form with constructors, destructor, and copy operators.
- ex01: First Steps to a Useful Class - Develop a
Fixedclass representing fixed-point numbers. - ex02: Now We Can Speak - Enhance the
Fixedclass with overloaded operators.
Module 03: Inheritance
- ex00: Aaaaand... OPEN! - Create a
ClapTrapclass with attributes for hit points, energy points, and attack damage. - ex01: Serena, my love! - Derive a
ScavTrapclass fromClapTrapwith additional functionality. - ex02: Repetitive work - Introduce a
FragTrapclass that inherits fromClapTrapwith unique methods.
Module 04: Polymorphism and Abstract Classes
- ex00: Polymorphism - Create an
Animalclass with derived classes to demonstrate subtype polymorphism. - ex01: I don’t want to set the world on fire - Ensure
Animalcan’t be instantiated by making it abstract. - ex02: Abstract Class - Extend abstract classes with pure virtual functions.
- ex03: Interface & Recap - Implement interfaces and combine previous lessons.
Module 05: Repetition and Exceptions
- ex00: Mommy, when I grow up, I want to be a bureaucrat! - Create a
Bureaucratclass with grade validation and exceptions. - ex01: Form up, maggots! - Implement a
Formclass that interacts withBureaucratfor signing. - ex02: No, you need form 28B, not 28C... - Add execution functionality to forms with error handling.
- ex03: At least this beats coffee-making - Implement an
Internclass capable of creating form objects.
Module 06: C++ Type Casting
- ex00: Conversion of scalar types - Implement a
ScalarConverterclass to output string values in multiple scalar types. - ex01: Serialization - Create functions to serialize and deserialize pointers.
- ex02: Identify real type - Write functions to identify the type of polymorphic objects.
Module 07: C++ Templates
- ex00: Start with a few functions - Implement basic template functions like
swap,min, andmax. - ex01: Iter - Write a template function that applies a function to each array element.
- ex02: Array - Create a template
Arrayclass that manages elements dynamically.
Module 08: Containers and Iterators
- ex00: Easy find - Implement a function template to find integers in a container.
- ex01: Span - Develop a
Spanclass for storing integers and finding shortest/longest spans. - ex02: Mutant Abomination - Create an iterable
MutantStackclass that extendsstd::stack.
Module 09: Advanced STL and Algorithms
- ex00: Bitcoin Exchange - Build a program to display Bitcoin values based on CSV input.
- ex01: Reverse Polish Notation (RPN) - Implement an RPN calculator.
- ex02: PmergeMe - Implement the Ford-Johnson sorting algorithm with STL containers.