Polymorphism is an important concept of object-oriented programming. It simply means more than one form. That is, the same entity (function or operator) behaves differently in different scenarios.
Function Overloading in C++
In C++, two or more functions can have the same name if the number and/or type of parameters are different, this is called function overloading.
Example:-
#include <iostream>
using namespace std;
int add(int a, int b) {
return a+b;
}
int add(int a, int b, int c) {
return a+b+c;
}
double add(double a, double b) {
return a+b;
}
int main() {
int x = 3, y = 7, z = 12;
double n1 = 4.56, n2 = 13.479;
cout<<"x+y = "<<add(x,y)<<endl;
cout<<"x+y+z = "<<add(x,y,z)<<endl;
cout<<"n1+n2 = "<<add(n1,n2);
return 0;
}
Output:-
x+y = 10
x+y+z = 22
n1+n2 = 18.039
Function Overriding in C++
When a member function of a base class is redefined in its derived class with the same parameters and return type, it is called function overriding in C++. The base class function is said to be overridden.
Example:-
#include <iostream>
using namespace std;
class base {
public:
virtual void display() {
cout<<"Function of base class"<<endl;
}
};
class derived : public base {
public:
void display() {
cout<<"Function of derived class"<<endl;
}
};
int main() {
derived d1;
d1.display();
return 0;
}
Output:-
Function of derived class
Virtual Function in C++
A virtual function is a function defined in the base class with virtual keyword. The purpose of virtual function is to ensure that the function is overridden.
Example:-
#include <iostream>
using namespace std;
class base {
public:
void display() {
cout<<"Function of base class"<<endl;
}
};
class derived : public base {
public:
void display() {
cout<<"Function of derived class"<<endl;
}
};
int main() {
derived d;
base *b = &d; //base class pointer
b->display(); //base class function executes
return 0;
}
Output:-
Function of base class
Comments
Post a Comment