This repository showcases my university projects exploring object-oriented programming (OOP) in C++. 💻
- Each folder represents a project.
- You'll find:
... .cpp
: Files containing the code.README.md
: Detailed project descriptions.
Language:
- C++
Tools and Techniques:
- GCC/G++: GNU Compiler Collection for compiling C++ programs.
- GDB: GNU Debugger for debugging C++ programs.
- Make: Utility for managing project builds.
- Valgrind: Tool for memory debugging, memory leak detection, and profiling.
- CMake: Tool for managing the build process in a compiler-independent manner.
C++ Features:
- OOP Fundamentals: Mastery of object-oriented programming concepts such as classes, inheritance, polymorphism, and encapsulation.
- Abstract Data Types: Implementation of various data structures including stacks, queues, expandable arrays (vectors), sets, and tables.
- Templates: Usage of templates for creating generic and reusable code components.
- Copying/Moving Objects: Understanding and implementing deep copy, shallow copy, move semantics, and resource management.
- Operator Overloading: Customizing the behavior of operators for user-defined types to improve code readability and usability.
Standard Library and Modern C++:
- STL Containers: Proficiency with the Standard Template Library (STL) containers like
vector
,list
,map
,set
, andunordered_map
. - STL Algorithms: Usage of STL algorithms for efficient data manipulation and processing.
- C++11/14/17/20 Features: Familiarity with modern C++ standards, including lambda expressions, smart pointers (
unique_ptr
,shared_ptr
), concurrency, and more. - Memory Management: Effective use of dynamic memory allocation, RAII (Resource Acquisition Is Initialization), and smart pointers for resource management.
- OOP Fundamentals: Grasped the core concepts of OOP.
- Abstract Data Types: Implemented structures like stacks, queues, expandable arrays (vectors), sets, and tables.
- Advanced C++ Features: Utilized templates, object copying/moving, operator overloading, and more.
- Master C++ Foundations: Gained a solid understanding of C++ structures and the standard library.
- Harness Modern C++: Learned powerful techniques from contemporary C++ standards.