{"id":25709530,"url":"https://github.com/ivangrana/object-oriented-programming-cpp","last_synced_at":"2026-06-18T00:31:17.430Z","repository":{"id":49810182,"uuid":"495988070","full_name":"ivangrana/Object-oriented-programming-cpp","owner":"ivangrana","description":"object oriented programming concepts with C++","archived":false,"fork":false,"pushed_at":"2025-09-10T14:16:02.000Z","size":37,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-10T17:58:18.492Z","etag":null,"topics":["cpp","object-oriented-programming"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivangrana.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-24T21:06:22.000Z","updated_at":"2025-09-10T14:16:06.000Z","dependencies_parsed_at":"2023-12-11T00:26:46.115Z","dependency_job_id":"d1a1d171-7c8d-4f0f-a5ed-fdec15337f44","html_url":"https://github.com/ivangrana/Object-oriented-programming-cpp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ivangrana/Object-oriented-programming-cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangrana%2FObject-oriented-programming-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangrana%2FObject-oriented-programming-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangrana%2FObject-oriented-programming-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangrana%2FObject-oriented-programming-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivangrana","download_url":"https://codeload.github.com/ivangrana/Object-oriented-programming-cpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangrana%2FObject-oriented-programming-cpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34471638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","object-oriented-programming"],"created_at":"2025-02-25T09:33:46.421Z","updated_at":"2026-06-18T00:31:17.393Z","avatar_url":"https://github.com/ivangrana.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 1. Introduction to Programming:\n\n    Familiarize yourself with basic programming concepts like variables, data types, control structures (if-else, loops), and functions.\n\n# 2. Basics of C++:\n\n    Get acquainted with C++ syntax, input/output operations, and fundamental programming constructs.\n\n# 3. Functions and Scope:\n\n    Learn about function declaration, definition, and calling.\n    Understand function scope, local and global variables.\n\n# 4. Object-Oriented Programming Concepts:\n\n    Understand the core OOP concepts: classes, objects, encapsulation, inheritance, and polymorphism.\n    Grasp the concept of data abstraction and separation of interface from implementation.\n\n# 5. Classes and Objects:\n\n    Study how to create classes and objects in C++.\n    Explore member variables, member functions, constructors, and destructors.\n\n# 6. Encapsulation:\n\n    Learn about access specifiers (public, private, protected) and how they control class member visibility.\n    Understand the concept of information hiding and encapsulation.\n\n# 7. Constructors and Destructors:\n\n    Explore different types of constructors (default, parameterized, copy).\n    Understand the purpose of destructors and their role in resource management.\n\n# 8. Inheritance:\n\n    Learn about creating a hierarchy of classes using inheritance.\n    Understand base and derived classes, and how to access base class members from derived classes.\n\n# 9. Polymorphism:\n\n    Study runtime polymorphism using virtual functions and the concept of dynamic binding.\n    Understand the use of the virtual keyword and the override specifier.\n\n# 10. Abstract Classes and Interfaces:\n\n    Learn about abstract classes and pure virtual functions.\n    Understand how to create interfaces in C++.\n\n# 11. Operator Overloading:\n\n    Explore how to overload operators to work with user-defined types.\n    Learn about operator overloading syntax and best practices.\n\n# 12. Templates:\n\n    Understand how to create generic classes and functions using templates.\n    Learn about function templates and class templates.\n\n# 13. Standard Template Library (STL):\n\n    Familiarize yourself with the STL containers (vector, list, map, etc.) and algorithms.\n    Learn how to use iterators to traverse containers.\n\n# 14. Smart Pointers:\n\n    Study smart pointers (unique_ptr, shared_ptr, weak_ptr) for better memory management.\n\n# 15. Exception Handling:\n\n    Learn about handling exceptions using try-catch blocks.\n    Understand the concept of exception propagation and creating custom exceptions.\n\n# 16. Design Patterns (Optional, but recommended):\n\n    Study common design patterns such as Singleton, Factory, Observer, etc.\n    Understand their application in designing robust and maintainable systems.\n\n# 17. Projects and Practice:\n\n    Apply what you've learned by working on small to medium-sized projects.\n    Practice coding, debugging, and problem-solving regularly.\n\n# 18. Advanced C++ Concepts:\n\n    This directory contains code examples for advanced C++ concepts, suitable for experienced C++ developers.\n\n    - **SmartPointers.cpp:** Demonstrates the use of `std::unique_ptr`, `std::shared_ptr`, and `std::weak_ptr` for modern memory management.\n    - **Concurrency.cpp:** Shows a basic example of multithreading using `std::thread` and data synchronization with `std::mutex`.\n    - **MoveSemantics.cpp:** Implements a class with a move constructor and move assignment operator to illustrate how to efficiently transfer resources.\n    - **LambdaExpressions.cpp:** Provides examples of using lambda expressions with STL algorithms.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangrana%2Fobject-oriented-programming-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivangrana%2Fobject-oriented-programming-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangrana%2Fobject-oriented-programming-cpp/lists"}