Skip to main content

Function Overloading

Function overloading is also called function polymorphism. Poly means many, and morph means form: A polymorphic function is many-formed.

Often you will find that you need two or more functions that do essentially the same thing, but to different data types. For example, you might need several versions of function larger(), for finding the larger of two variables of any of the basic numeric data types. Ideally, of course, all of these functions would have the same name, larger(). The alternative would be to define a function largerint() for variables of type int, and a function largerfloat() for variables of type float, and so on – which is clumsy and laborious. This is a case for function overloading.

Overloading refers to the use of the same thing for different purposes. C++ also permits overloading of functions. This means that we can use the same function name to create functions that performs a variety of different tasks. This is known as function overloading.

Using the concept of function overloading; we can assign a family of functions with one function name but with different argument lists. The function would perform different operations depending on the argument list in the function call. The correct function to be called is determined by checking the number and type of the arguments but not on the function type.

A function call first matches the prototype having the same number and type of arguments and then calls the appropriate function for execution. A best match must be unique.

The Signature of a Function

The combination of the name of a function, together with its parameter types defines a unique characteristic called the function signature. The function signature serves to differentiate one function from another – each function in your program must have a unique function signature. It comes into play whenever you call a function in your program.

From the function prototypes or the function definitions, the compiler creates a function signature for each function in your program file. When you write a statement that includes a function call, the compiler uses the call to create a function signature, and then compares it with the set of function signatures which are available in your function prototypes and/or definitions. If it finds a match, then it is established which function you called. If it doesn’t find a match, then it will check to see whether any conversions on the arguments will produce a match.

Program 5:

#include<iostream.h>
#include<conio.h>

int add(int,int);                                 // prototypes
double add(double,double);
double add(int,int,double);

void main()
{
int x;
double y,z;
x=add(10,20);
y=add(3.5,4.5);
z=add(10,30,5.5);
cout << "Ans is :" << "x = " << x << " y = " << y << " z = " << z;
getch();
}

int add(int a, int b)
{
      return (a+b);
}

double add(double a, double b)
{
     return (a+b);
}

double add(int a, int b, double c)
{
     return (a+b+c);
}


Made By: Chaudhary Amit V.

Comments

Popular posts from this blog

Characteristics of a Good Programming Language

Till now there are many high level languages which are very popular, and there are others, which could not become so popular in-spite of being very powerful. There might be many reasons for the success of a language, but one obvious reason is the characteristics of the language. Several characteristics believed to be important with respect to making a programming language good are briefly discussed below. Simplicity A good programming language must be simple and easy to learn and use. For example, BASIC is liked by many programmers only because of its simplicity. Thus, a good programming language should provide a programmer with a clear, simple and unified set of concepts which can be easily grasped. It is also easy to develop and implement a compiler or an interpreter for a programming language that is simple. However, the power needed for the language should not be sacrificed for simplicity. The overall simplicity of a programming language strongly affects the readability of the pr...

Angular 4 and Firebase Authentication: Setup

If you have come to this article, it means you are keen to learn new technology and that too Firebase. I love Firebase because it provides all basic but important features of any web application. Take for example, authentication, which is cumbersome and risky if not implemented with utmost care. And when we have the integration of Angular and Firebase, it becomes a lot easier for a developer to build such crucial modules in less time with minimal efforts. In this article we will create a simple Angular application using Firebase. I am going ahead with the understanding that you know the benefits of Firebase and have little knowledge about it. There are plenty of posts out on the web if you are behind. Step 1: Install Angular CLI (if not installed). npm install -g angular-cli Step 2: Create new Angular 4 project. By default now angular CLI will create Angular 4 project so you need not fret. ng new firebase-authentication Step 3: Check whether the ne...

Switch-case, simple calculator . . .

11.      Write a program to perform some mathematic functions with the help of “switch-case” statement. #include<stdio.h> #include<conio.h> void main() { int a,b,ans; char c; clrscr(); printf("\ Enter a and b:"); scanf("%d%d",&a,&b); printf("\n Enter operator:"); fflush(stdin); scanf("%c",&c); switch(c) { case'+':ans=a+b;       break; case'-':ans=a-b;       break; case'*':ans=a*b;       break; case'/':ans=a/b;       break; } printf("\n ans %d",ans); getch(); } 12.      Print the Fibonacci series #include<stdio.h> #include<conio.h> void main() { int a=1,b=1,s=3,c,ch; clrscr(); printf("how many steps="); scanf("%d",&ch); printf("%5d%5d",a,b); for(s=3;s<=ch;s++) {       c=a+b;       printf("%5d",c);       a=b;    ...