A collection of C++ programs, organized by topic, to understand and practice Object-Oriented Programming (OOP) and core data-structure / algorithm concepts in C++.
/
├── OOP/ — C++ programs demonstrating object-oriented programming concepts
├── array/ — Array-based problems & utilities
├── trees/ — Tree data-structures and related algorithms
├── questions/ — Various coding problems and practice exercises
├── .vscode/ — Workspace settings (for Visual Studio Code)
├── README.md — Project overview and instructions
└── notes.md — Personal notes, observations, tips
- Practice files to understand fundamental OOP concepts (classes, inheritance, encapsulation, polymorphism, etc.) in C++.
- Implementation of basic and intermediate data-structures / algorithms (arrays, trees, etc.), helping you build a strong foundation.
- A variety of coding problems (in the
questions/folder) — useful for honing problem-solving skills and preparing for interviews or competitive programming. - A structured approach: by categorizing code by topic, it’s easier to navigate through learning material and track progress over time.
- Clone the repository:
git clone https://github.com/pushparajwastaken/cpp_practice.git
2. Navigate to the folder relevant to what you want to explore. For example:
```bash
cd cpp_practice/OOP
```
3. Compile & run a C++ file using your favourite compiler. Example (with `g++`):
```bash
g++ MyProgram.cpp -o MyProgram
./MyProgram
```
4. You can also compile multiple files if needed (for projects needing more than one source/header file).
---
## 📚 What You’ll Learn / Use Cases
* Understand and practice core OOP paradigms in C++.
* Get comfortable with writing and running C++ code from scratch (no external dependencies or frameworks).
* Use as a reference collection for data-structures, common problems, and typical coding patterns.
* Ideal for self-learning, interview preparation, or refreshing fundamentals before advanced projects.
---
## ✨ Future / To-Do (Possible Enhancements)
* Add more data-structures (linked lists, graphs, heaps, etc.).
* Include algorithms on top of data-structures (sorting, searching, tree / graph traversal, dynamic programming, etc.).
* Add sample input/output or test cases for each file for easier testing and verification.
* Add comments and documentation for more complex programs to improve readability and maintainability.
* Add a “contributing guideline” if others want to contribute — to keep repository organized and consistent.
---