# Introduction

<details>

<summary>What's OOP?</summary>

Procedural programming is about writing procedures or functions that perform operations on the data, while object-oriented programming is about creating objects that contain both data and functions.

Object-oriented programming has several advantages over procedural programming:

* OOP is faster and easier to execute
* OOP provides a clear structure for the programs
* OOP helps to keep the C++ code DRY "Don't Repeat Yourself", and makes the code easier to maintain, modify and debug
* OOP makes it possible to create fully reusable applications with less code and shorter development time

</details>

<details>

<summary>What are Classes and Objects?</summary>

Classes and objects are the two main aspects of object-oriented programming.

Look at the following illustration to see the difference between class and objects:

### class              Objects

Fruit                   Apple, Banana, Mango

So, a class is a template for objects, and an object is an instance of a class.

When the individual objects are created, they inherit all the variables and functions from the class.

</details>
