# sahastrawin/oops-cpp architecture

> Architecture diagram of the GitHub repository sahastrawin/oops-cpp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sahastrawin/oops-cpp
- Repository: https://github.com/sahastrawin/oops-cpp

## Overview

This repository is a C++ OOP learning collection, not a single application: learners study topic-wise lessons, inspect pillar demonstrations, and reinforce concepts with personal implementations and college practicals. The README identifies a progression from introduction and classes through constructors, inheritance, polymorphism, and advanced topics, alongside memory management, file handling, and modern C++. The graph captures these documented learning branches and the sampled modular-car example. Most individual programs are standalone; source excerpts do not establish runtime links between the learning collections.

Main entry points: [`OOPs-Pillars/Modularity/Car.h`](https://github.com/sahastrawin/oops-cpp/blob/main/OOPs-Pillars/Modularity/Car.h) (Modular Car), [`OOPs-Pillars/Modularity/main.cpp`](https://github.com/sahastrawin/oops-cpp/blob/main/OOPs-Pillars/Modularity/main.cpp) (Modularity Example), [`Topic-Wise-Lessons/01_Introduction/introduction.cpp`](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/01_Introduction/introduction.cpp) (Introduction), [`Topic-Wise-Lessons/02_Classes_and_Objects/classes_and_objects.cpp`](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/02_Classes_and_Objects/classes_and_objects.cpp) (Classes & Objects)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_lessons["Topic Lessons"]
  node_intro["Introduction<br/>[introduction.cpp]"]
  node_classes["Classes &amp; Objects"]
  node_constructors["Object Lifecycle<br/>[constructors.cpp]"]
  node_operators["Operator Overloading"]
  node_inheritance["Inheritance<br/>[inheritance.cpp]"]
  node_polymorphism["Polymorphism<br/>[polymorphism.cpp]"]
  node_language_topics["Language Topics"]
  node_memory["Memory Management<br/>[smart_pointers.cpp]"]
  node_file_handling["File Handling<br/>[file_handling.cpp]"]
end

subgraph group_pillars["OOP Pillars"]
  node_pillar_principles["Pillar Demonstrations"]
end

subgraph group_practice["Practice Collections"]
  node_personal["Personal Examples"]
  node_college["College Practicals"]
end

subgraph group_modular["Modularity Demo"]
  node_modularity_main["Modularity Example<br/>[main.cpp]"]
  node_modular_car["Modular Car<br/>[Car.h]"]
  node_engine["Engine Module<br/>[Engine.h]"]
end

node_learner(("Learner"))

node_learner -->|"starts with"| node_intro
node_learner -->|"studies"| node_classes
node_learner -->|"studies"| node_constructors
node_learner -->|"studies"| node_operators
node_learner -->|"studies"| node_inheritance
node_learner -->|"studies"| node_polymorphism
node_learner -->|"explores"| node_language_topics
node_learner -->|"learns"| node_memory
node_learner -->|"learns"| node_file_handling
node_learner -->|"reviews"| node_pillar_principles
node_learner -->|"practices with"| node_personal
node_learner -->|"practices with"| node_college
node_modularity_main -->|"instantiates"| node_modular_car
node_modular_car -->|"composes"| node_engine

click node_intro "https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/01_Introduction/introduction.cpp"
click node_classes "https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/02_Classes_and_Objects/classes_and_objects.cpp"
click node_constructors "https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/03_Constructors/constructors.cpp"
click node_operators "https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/04_Operator_Overloading/operator_overloading.cpp"
click node_inheritance "https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/05_Inheritance/inheritance.cpp"
click node_polymorphism "https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/06_Polymorphism/polymorphism.cpp"
click node_language_topics "https://github.com/sahastrawin/oops-cpp/tree/main/Topic-Wise-Lessons"
click node_memory "https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/14_Smart_Pointers/smart_pointers.cpp"
click node_file_handling "https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/12_File_Handling/file_handling.cpp"
click node_pillar_principles "https://github.com/sahastrawin/oops-cpp/tree/main/OOPs-Pillars"
click node_modularity_main "https://github.com/sahastrawin/oops-cpp/blob/main/OOPs-Pillars/Modularity/main.cpp"
click node_modular_car "https://github.com/sahastrawin/oops-cpp/blob/main/OOPs-Pillars/Modularity/Car.h"
click node_engine "https://github.com/sahastrawin/oops-cpp/blob/main/OOPs-Pillars/Modularity/Engine.h"
click node_personal "https://github.com/sahastrawin/oops-cpp/tree/main/Personal-Implementations"
click node_college "https://github.com/sahastrawin/oops-cpp/tree/main/College"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_intro,node_classes,node_constructors,node_operators,node_inheritance,node_polymorphism,node_language_topics,node_memory,node_file_handling toneBlue
class node_pillar_principles toneAmber
class node_personal,node_college toneMint
class node_modularity_main,node_modular_car,node_engine toneRose
class node_learner toneIndigo
```

## Components

### Topic Lessons

- [Introduction](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/01_Introduction/introduction.cpp): `Topic-Wise-Lessons/01_Introduction/introduction.cpp`
- [Classes & Objects](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/02_Classes_and_Objects/classes_and_objects.cpp): `Topic-Wise-Lessons/02_Classes_and_Objects/classes_and_objects.cpp`
- [Object Lifecycle](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/03_Constructors/constructors.cpp): `Topic-Wise-Lessons/03_Constructors/constructors.cpp`
- [Operator Overloading](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/04_Operator_Overloading/operator_overloading.cpp): `Topic-Wise-Lessons/04_Operator_Overloading/operator_overloading.cpp`
- [Inheritance](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/05_Inheritance/inheritance.cpp): `Topic-Wise-Lessons/05_Inheritance/inheritance.cpp`
- [Polymorphism](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/06_Polymorphism/polymorphism.cpp): `Topic-Wise-Lessons/06_Polymorphism/polymorphism.cpp`
- [Language Topics](https://github.com/sahastrawin/oops-cpp/tree/main/Topic-Wise-Lessons): `Topic-Wise-Lessons`
- [Memory Management](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/14_Smart_Pointers/smart_pointers.cpp): `Topic-Wise-Lessons/14_Smart_Pointers/smart_pointers.cpp`
- [File Handling](https://github.com/sahastrawin/oops-cpp/blob/main/Topic-Wise-Lessons/12_File_Handling/file_handling.cpp): `Topic-Wise-Lessons/12_File_Handling/file_handling.cpp`

### OOP Pillars

- [Pillar Demonstrations](https://github.com/sahastrawin/oops-cpp/tree/main/OOPs-Pillars): `OOPs-Pillars`

### Practice Collections

- [Personal Examples](https://github.com/sahastrawin/oops-cpp/tree/main/Personal-Implementations): `Personal-Implementations`
- [College Practicals](https://github.com/sahastrawin/oops-cpp/tree/main/College): `College`

### Modularity Demo

- [Modularity Example](https://github.com/sahastrawin/oops-cpp/blob/main/OOPs-Pillars/Modularity/main.cpp): `OOPs-Pillars/Modularity/main.cpp`
- [Modular Car](https://github.com/sahastrawin/oops-cpp/blob/main/OOPs-Pillars/Modularity/Car.h): `OOPs-Pillars/Modularity/Car.h`
- [Engine Module](https://github.com/sahastrawin/oops-cpp/blob/main/OOPs-Pillars/Modularity/Engine.h): `OOPs-Pillars/Modularity/Engine.h`

### Other components

- **Learner**

## Connections

- Learner → Introduction: starts with (evidence: `README.md`)
- Learner → Classes & Objects: studies (evidence: `README.md`)
- Learner → Object Lifecycle: studies (evidence: `README.md`)
- Learner → Operator Overloading: studies (evidence: `README.md`)
- Learner → Inheritance: studies (evidence: `README.md`)
- Learner → Polymorphism: studies (evidence: `README.md`)
- Learner → Language Topics: explores (evidence: `README.md`)
- Learner → Memory Management: learns (evidence: `README.md`)
- Learner → File Handling: learns (evidence: `README.md`)
- Learner → Pillar Demonstrations: reviews (evidence: `README.md`)
- Learner → Personal Examples: practices with (evidence: `README.md`)
- Learner → College Practicals: practices with (evidence: `README.md`)
- Modularity Example → Modular Car: instantiates (evidence: `OOPs-Pillars/Modularity/main.cpp`)
- Modular Car → Engine Module: composes (evidence: `OOPs-Pillars/Modularity/Car.h`)
