C++ Polymorphism4 min read

Polymorphism means having many forms. The word “poly” means many and “morphs” means forms, which means it is the way of performing some task in many ways. That means a single function or an operator functioning in many ways. It is one of the major concepts of Object-oriented programming.

Take a real-life example: A woman can be a mother or daughter and a teacher in a class, that is she posses a different behaviour at different times or situations. Similarly, a class in a program has a method and the subclass have the same method but with a different task to perform related to the first method. This is called polymorphism.

In C++, we have two types of polymorphism and they are:

  • Compile-time Polymorphism or Static (or early) Polymorphism.
  • Runtime Polymorphism or Dynamic (or late) Polymorphism.

1. Compile time Polymorphism

In this type of program, the flow of control is decided at compile time itself. It is achieved by function overloading and operator overloading. It is also known as static or early binding.

Function Overloading:

The multiple functions having the same name but with different parameters, then these functions are said to be overloaded. When we call those functions, we need to make sure to enter the proper number of arguments along with the proper data type.

Example: C++ example of function overloading.

Output:


Operator Overloading:

To achieve Compile time Polymorphism, operator overloading is also used. Operator overloading means performing different operations with the same operator. The keyword ‘operator‘ is used to overload an operator.

Example: Consider an operator ‘+‘, it is used to add the two numbers but it is also used with string to concatenate two strings. So the ‘+‘ operator when placed between number operands, addition operation is done but when placed between string operands, it concatenates them.

Let us understand through an example: C++ program for operator overloading.

Output:


2. Run time Polymorphism

In run time polymorphism, the program is called at the time of execution that is at rum time. It is also known as the late binding or dynamic binding.

This type of polymorphism is achieved by Method Overriding. We use virtual functions and pointers to achieve this.

Function Overriding:

Function overriding allows us to define a function at a derived class that is already present in a base class. And that base is said to be overridden.

And the decision made to call the required function is done at the run time. Hence, the Runtime polymorphism.

Example: C++ example of function overriding.

Output:


Differences between Compile time and Run time Polymorphism

Compile-time polymorphismRun time polymorphism
In this type of program, the flow of control is decided at compile time itself.The program is called at the time of execution that is at rum time
It is achieved by function overloading and operator overloadingIt is achieved by function overriding and virtual function.
Also called static or early binding.Also called late binding or dynamic binding.
Here, the methods have the same name but with a different number of parameters or the type of parameters.Here, the methods have the same name, the same number of parameters, or the type of parameters.
As it happens at compile-time, therefore provides a fast execution.As it happens at run-time, therefore provides a slow execution.

MORE

Keith Number Program in C

In this tutorial, we will write a Keith number in C. It is one of the most asked questions in an interview. Before that, you …
Read More

Keith Number Program in C++

In this tutorial, we will write a Keith number in C++. It is one of the most asked questions in an interview. Before that, you …
Read More

Singly linked list Program C++

In this tutorial, we will write a C++ program to implement singly linked list. In this program, we will create a separate function for each …
Read More

Fascinating Number Program in C

In this tutorial, we will write a C program to check whether the given number is a Fascinating number or not. You may go through …
Read More

Peterson Number in C

In this tutorial, we will learn about the Peterson number and check if the number is Peterson or not in C. What is Peterson Number? …
Read More

Peterson Number in C++

In this tutorial, we will learn about the Peterson number and write a C++ program to check if the given number is a Peterson number …
Read More