This repository contains a collection of C++ projects created for learning purposes. Each project is designed to demonstrate a specific OOP/C++ concept.
Each project is contained in its own directory. The directory name indicates the topic covered by the project. For example, the 1-intro-to-modules directory contains a project that demonstrates the use of modules in C++.
Each project is a Visual Studio solution. To build and run a project, open the .sln file in the project's directory with Visual Studio and then build and run it from there.
Here is a list of the projects in this repository and the topics they cover:
- 0-slides-on-pointers-and-references: Slides on pointers and references.
- 1-intro-to-modules: Introduction to modules.
- 2-intro-to-unit-tests: Introduction to unit tests.
- 3-types-in-cpp: C++ data types.
- 4-function-overloading: Function overloading.
- 5-default-arguments: Default arguments in functions.
- 6-references-practice: Practice with references.
- 7-dynamic-memory-allocation: Dynamic memory allocation.
- 8-dma-demo: Demonstration of dynamic memory allocation.
- 9-employee-struct-with-functions-outside: Employee struct with functions outside the struct.
- 10-employee-struct-with-functions-inside: Employee struct with functions inside the struct.
- 11-intro-to-privacy-in-oo: Introduction to data privacy in object-oriented programming.
- 12-intro-to-class-in-cpp: Introduction to classes in C++.
- 13-constructors-and-destructors: Constructors and destructors.
- 14-pointer-reference-in-cpp: Pointers and references in C++.
- 15-intro-to-this-pointer: Introduction to the
thispointer. - 16-more-on-this-and-copies-vs-references: More on the
thispointer and copies vs. references. - 17-intro-to-operator-overloading: Introduction to operator overloading.
- 18-prefix-increment-operator-overload: Overloading the prefix increment operator.
- 19-postfix-increment-operator-overload: Overloading the postfix increment operator.
- 20-type-conversion-operator-overload: Overloading the type conversion operator.
- 21-cast-operator-overload: Overloading the cast operator.
- 22-localizing-constructor-logic: Using temporary objects to access validation logic localized within one constructor.
- 23-free-helper-function: Introducing a function that obtains all of its information from the public member functions of the class that it supports.
- 24-helper-operator: Helper operators as global functions that overload operators.
- 25-friend-function: Employee project 16.
- 26-Employee17: Employee project 17.
- 27-Employee18: Employee project 18.
- 28-Employee19: Employee project 19.
- 29-ReadingFromAFile: Reading from a file.
- 30-WritingToAFile: Writing to a file.
- 31-RobustInputValidation: Robust input validation.
- 32-Employee20: Employee project 20.
- 33-Employee21: Employee project 21.
- 34-Employee22: Employee project 22.
- 35-Employee23: Employee project 23.
- 36-Employee24: Employee project 24.
- 37-Employee25: Employee project 25.
- 38-Employee26: Employee project 26.
- 39-Employee27: Employee project 27.
- 40-Employee28: Employee project 28.