In order to grasp the OOPS concepts in C++, it is essential to first understand what is OOPS in the context of C++?
What is OOPS?
- Before OOP, the computer programming language was organized around logic and actions.
- The OOP is organized around objects and data.
- In OOP, right from human being to buildings and floors and animals and machines to buttons, scroll bars, windows, toolbars everything is object.
- Object is a thing whose properties can be described, manipulated and managed.
- Object combines data and function that operates data into a single unit known as object.
- All object in nature have their own identity and behavior (what an object does) and these two characteristics help us to recognize them.
- In most of the software, the two things data and process are separated in programming. in OOP,theses two are linked. This linking is called as encapsulation.
Data + Process / Method = Object
- That means the data and its functions are encapsulated into a single entity.
- C++ program consists of number of objects that communicates with each other by calling one another’s member functions.
- In OOP we have to identify all the objects and their relationship. The process or method in the OOP is the logical sequence that manipulate the data contained by object.
Difference between OOP and Traditional Programming
- In structured programming, procedures, structures and subroutines are used.
- In structures programming, it is very difficult to design the GUI(Graphical User Interface) elements like menus, windows and icons etc.
- Another problem with languages like BASIC,COBOL, C etc. is that we cannot create new data types. Generally they contains integers,floating point numbers, characters etc. but if we want 2 -dimensional variables or complex variables or date variables then this is not possible in traditional language.
- OOP allows programmer to create new data types that are not defined in the language itself.
- In modular programming module is the functionally decomposed piece of code, which performs a particular process or set of processes.
- In OOP, an object is a unit of software containing both data and process which provide some meaningful behavior.
- The definition of a class in OOP us reusable not only by the program for which it is initially created but also by other OOP programs. And hence it can be more easily distributed for user in network.
- The properties of OOP makes it possible to define sub-classes of data objects and share some or all of the class characteristics.
- In data hiding property of OOP, class defines data it needs to be concerned with, when an instance of the class is run, the code will not be able to accidentally access other program data.
OOPS Concepts in C++ in brief
The concepts of Object Oriented Programming are:
1. Class and Object
3. Data Abstraction and Encapsulation
6. Dynamic Binding
7. Message Passing
1. Class and Object
- As per google, class is a user defined data type or data structure declared with keyword class that has data and functions.
- Class variable is called an object.
- Class is a collection of objects of similar type.
- Class member are variables and functions.
- Objects are run-time entities in object oriented system.
- Objects are service providers.
- Each object is an independent entity with its own lifetime.
- Objects contain data and code to manipulate that data.
- Object is a software entity that combines state and behavior.
2. Data Abstraction and Encapsulation
- Encapsulation refers to wrapping up of data and functions into a single unit (class).
- The insulation(protection) of the data from direct access by the program is called data hiding or information hiding.
- Abstraction refers to the act of representing essentials features without including explanations.
- Since classes use the concept of data abstraction, they are know as Abstract Data Types (ADT).
- This is the process by which object of one class can acquire the properties of object of another class.
- It provides the idea of reusability.
- Generally used to divide class into sub-classes or to combine the attributes of several sub-classes also.
- It allows a class to be extended so that its existing functionality can be built on for new application.
- Poly = many , morphs = types
- It indicates the ability to take more than once form.
- The behavior of polymorphism depends upon the types of data used in the operation.
- Polymorphism allows single function name is used to perform different types of tasks.
5. Dynamic Binding
- Binding refers to linking of a procedure call to the code to be executed in response to the call and
- Dynamic binding means the code associated with a given procedure call is not known until the time of the call at run-time.
- It is associated with polymorphism and inheritance.
6. Message Passing
- An OOP consists of a set of objects that communicate with each other and hence object programming involves creating classes, creating objects and establishing communication among objects.
- Message passing is nothing but sending and receiving of information by the objects.
- An object of a class that wants to communication with the object of another class request the object to invoke the required member formulation of its class, however receiving object may or may not accept the request .It depends on whether calling interface is public or private.