The basic purpose of C++ programming was to add object orientation to the C programming language,
which is in itself one of the most powerful programming languages.
The core of the pure object-oriented programming is to create an object, in code, that has certain properties and methods.
While designing C++ modules, we try to see whole world in the form of objects.
For example a bike is an object which has certain properties such as color, number of tyers, and the like.
It also has certain methods such as accelerate, brake, and so on.
There are some concepts of object-oriented programming -
Object
This is the basic unit of object oriented programming. That is both data and function that operate on data are bundled as a unit called as object.
Class
When you define a class, you define a blueprint for an object. This doesn't actually define any data, but it does define what the class name means,
that is, what an object of the class will consist of and what operations can be performed on such an object.
Abstraction
Data abstraction refers to, providing only essential information to the outside world and hiding their background details,
For an example, a database system hides certain details how data is stored and created and maintained.
Encapsulation
Encapsulation is placing the data and the functions that work on that data in the same place. While working with procedural languages,
it is not always clear which functions work on which variables but object-oriented programming provides you framework to place the data
and the relevant functions together in the same object.
Inheritance
One of the most useful aspects of object-oriented programming is code reusability. As the name suggests Inheritance is the process of forming
a new class from an existing class that is from the existing class called as base class, new class is formed called as derived class.
This is a very important concept of object-oriented programming since this feature helps to reduce the code size.
Polymorphism
The ability to use an operator or function in different ways in other words giving different meaning or functions
to the operators or functions is called polymorphism. Poly refers to many. That is a single function or an operator
functioning in many ways different upon the usage is called polymorphism.
Overloading
The concept of overloading is also a branch of polymorphism. When the exiting operator or function is made to operate
on new data type, it is said to be overloaded.