Skip to content

DevSars24/oops-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Advanced OOPs Concepts in C++ 📂 Project Structure This repository demonstrates core Object-Oriented Programming concepts in C++ using real-world examples with clean and meaningful code.

🧠 Concepts Covered

  1. ✅ Abstraction Real-Life Analogy:

When you order food in a restaurant, you don’t care how it's cooked — you just care that it arrives! This is abstraction: hiding internal details and exposing only functionality.

🔧 Code Example: cpp Copy Edit class Renderer { public: virtual void renderScene() = 0; // Abstract method }; Derived classes like OpenGLRenderer and DirectXRenderer implement their own logic. Main code just calls renderScene() — it doesn’t care how it works internally.

  1. 🔁 Runtime Polymorphism (with Abstraction) Renderer* render = new OpenGLRenderer();

render->renderScene();

Output depends on the actual object created — even though pointer type is Renderer*.

  1. 🧱 Encapsulation Real-Life Analogy: Your bank account is protected. You can check the balance or withdraw, but you can’t access internal code.

cpp Copy Edit class DatabaseConnection { string connectionString; bool isConnected;

public: const string& getConnectionString() const; void setConnectionString(const string& connStr); void connect(); }; Data is private

Accessed via public methods

Safe control via validation inside setters.

  1. 🚗 Inheritance + 🧬 Virtual Inheritance (Diamond Problem Solved) cpp Copy Edit class vehicle { virtual void move(); }; class car : virtual public vehicle {}; class bike : virtual public vehicle {}; class hybrid : public car, public bike {}; virtual inheritance prevents ambiguity.

Overridden move() in hybrid ensures correct method resolution.

  1. 👤 User Profile Class (Custom Setter Validation) cpp Copy Edit class userprofile { string name; int age;

public: userprofile(const string& n, int a); void setage(int a); // Validates input }; Validates negative input, shows how encapsulation + validation can protect data integrity.

🛠️ Tech Stack Language: C++

IDE: VS Code

Version Control: Git & GitHub

📎 How to Run Clone the repository:

bash Copy Edit git clone https://github.com/DevSars24/oops--.git cd oops-- Compile and run any .cpp file using:

bash Copy Edit g++ filename.cpp -o output && ./output 👨‍💻 Author Saurabh Singh Student at IIIT Bhagalpur | Passionate about Real-Life Tech Projects Inspired by: Steve Jobs

📘 Summary Concept Covered? Abstraction ✅ Encapsulation ✅ Inheritance ✅ Runtime Polymorphism ✅ Virtual Inheritance ✅

This repo serves as a crystal-clear learning base for mastering OOPs in C++ with intuition and real-world analogies.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages