Skip to content
ashutosh-engineerPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OOPs in C++ - Detailed Learning Repository

This repository is dedicated to my journey of learning Object-Oriented Programming (OOPs) in C++ in a detailed and structured way.

Author

  • Ashutosh Singh
  • 3rd Semester
  • Parul Institute of Engineering and Technology

Overview

This repo will cover the core principles of OOPs in C++ and provide practical programs, examples, and notes for better understanding.

The main focus is on building a strong conceptual foundation in:

  • Classes and Objects
  • Data Abstraction
  • Encapsulation
  • Inheritance
  • Polymorphism
  • Constructors and Destructors
  • Operator Overloading
  • Virtual Functions

Objectives

The purpose of this repository is to:

  • learn C++ systematically
  • understand OOPs concepts deeply
  • practice real coding examples
  • improve problem-solving ability
  • revise important concepts before exams and interviews

T## opics Covered

1. Introduction to C++

  • History and features of C++
  • Difference between C and C++
  • Structure of a C++ program
  • Input/output streams
  • Namespace and standard library

2. Basics of Programms

  • Operators
  • Control statements
  • Loops
  • Functions and parameter passing
  • Arrays and strings

3. Object-Oriented Programming Concepts

  • Class and object
  • Data members and member functions
  • Access specifiers
  • Encapsulation
  • Abstraction
  • Modularity ing
  • Variables and data type

4. Constructors and Destructors

  • Default constructor
  • Parameterized constructor
  • Copy constructor
  • Destructor
  • Constructor overloading

5. Inheritance

  • Single inheritance
  • Multiple inheritance
  • Multilevel inheritance
  • Hierarchical inheritance
  • Hybrid inheritance
  • Access control in inheritance

6. Polymorphism

  • Compile-time polymorphism
  • Function overloading
  • Operator overloading
  • Runtime polymorphism
  • Virtual functions
  • Pure virtual functions and abstract classes

7. Advanced OOPs Concepts

  • Friend function
  • Friend class
  • Static members
  • This pointer
  • Dynamic memory allocation
  • Shallow copy vs deep copy

Repository Structure

This repository will include:

  • source code files for concepts
  • practice exercises
  • examples and mini-projects
  • notes and explanations

Learning Journey

This repo will be updated as I continue learning and practicing OOPs in C++. The goal is to build a clear path from beginner concepts to advanced object-oriented design.

Progress Tracker

A separate tracker file is available here: LEARNING_TRACKER.md

Completed Topics and Files

Next Topics to Learn

  1. Rule of 3, Rule of 5, and Rule of 0
  2. Move Constructor and Move Assignment
  3. Lvalues, Rvalues, and std::move
  4. Virtual Destructors, Object Slicing, and vtable basics
  5. Exception Safety
  6. Low-Level Design (LLD)

C++ Interview Concepts

  • Stack vs heap memory
  • Pointers, references, const correctness, and nullptr — pointers.cpp
  • RAII and resource management — RAII.cpp
  • Smart pointers: unique_ptr, shared_ptr, and weak_ptr — Shared_pointers.cpp
  • Rule of 3, Rule of 5, and Rule of 0
  • Move constructor and move assignment
  • Lvalues, rvalues, and std::move
  • Virtual destructor, object slicing, and virtual table basics
  • Diamond problem and virtual inheritance
  • Exception handling and exception safety
  • static, const, constexpr, and inline
  • Casting: static_cast, dynamic_cast, const_cast, and reinterpret_cast
  • Lambdas and modern C++ features

Low-Level Design (LLD) Roadmap

  • OOP design principles and composition over inheritance
  • SOLID principles
  • Cohesion, coupling, and separation of concerns
  • Interfaces and dependency inversion
  • UML class diagrams and relationships
  • Designing extensible and testable classes
  • Creational design patterns: Factory, Builder, and Singleton
  • Structural design patterns: Adapter, Decorator, Facade, and Composite
  • Behavioral design patterns: Strategy, Observer, State, and Command
  • Thread-safe design and basic concurrency
  • Error handling, validation, and edge-case design
  • LLD case studies: parking lot, elevator, library, and vending machine

Final Project

  • Parking Lot Management System
    • Apply OOP, SOLID, smart pointers, design patterns, and LLD principles.
    • Implement vehicles, parking spots, floors, tickets, payments, and entry/exit flow.

Status Summary

  • Learned so far: Access modifiers, encapsulation, classes and objects, all major inheritance types, constructors, destructors, and polymorphism.
  • Next in line: Rule of 3, Rule of 5, Rule of 0, and move semantics.
  • Final project: Parking Lot Management System.
  • Goal: finish the remaining OOPs topics from the syllabus and revise with practice programs.

Note

This is a personal academic and learning repository focused on deep understanding of OOPs in C++.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages