OBJECT ORIENTED PROGRAMMING
C++
Object oriented programming as an approach that provides a way of modularizing programs by creating partitioned memory area for both data and functions that can be used as templates for creating copies of such modules on demand
The data hiding is the key feature of oops

Features of the Object Oriented programming
- Emphasis is on doing rather than procedure.
- programs are divided into what are known as objects.
- Data structures are designed such that they characterize the objects.
- Functions that operate on the data of an object are tied together in the data
structure.
- Data is hidden and can’t be accessed by external functions.
- Objects may communicate with each other through functions.
- New data and functions can be easily added.
- Follows bottom-up approach in program design.
DEMERITS OF OOP:
- Overhead: Implementing OOP often involves more code and overhead compared to procedural programming. This can lead to larger memory consumption and slower execution speed, especially in resource-constrained environments
- Inheritance Issues: While inheritance allows for code reuse and promotes modularity
- Encapsulation Breakage: While encapsulation aims to hide the internal state of objects and only expose necessary functionality, it can be broken if not implemented correctly
- Complexity: OOP can introduce complexity, Understanding concepts like classes, objects, inheritance, polymorphism, and encapsulation requires a shift in thinking for many programmers.
- Performance Overhead: In some cases, OOP can incur performance overhead due to features like dynamic dispatch (virtual methods) and indirect memory access through object references