Skip to content

bursasha/cpp-projects

Repository files navigation

My C++ Programming University Projects 📚

Hello there! 👋🏼

This repository showcases my university projects exploring object-oriented programming (OOP) in C++. 💻

Repository Structure: 📁

  • Each folder represents a project.
  • You'll find:
    • ... .cpp: Files containing the code.
    • README.md: Detailed project descriptions.

Technology Stack 🔍

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, and unordered_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.

What I Learned: 🧐

  • 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.

Course Goals: ⚡️

  • Master C++ Foundations: Gained a solid understanding of C++ structures and the standard library.
  • Harness Modern C++: Learned powerful techniques from contemporary C++ standards.

Check out my work! I'd love your feedback. 😊