[:it]
Il linguaggio C++ offre la possibilità di definire due funzioni con lo stesso nome che differiscono tra loro solamente per l’elenco dei parametri.
Tale diversità può riguardare sia il numero di parametri passati, sia il loro tipo.
In base al tipo e al numero di parametri passati alla funzione, il compilatore riconosce la funzione che deve essere richiamata.
Questo meccanismo di ridefinizione delle funzioni si chiama function overloading.
Ad esempio questo programma utilizza la stessa funzione che si chiama area per due cose diverse ed il compilatore interpreta e decide quale chiamare:
//
// Autore: Francesco Bragadin
// Oggetto: function overloading
//
#include<iostream>
using namespace std;
// dichiarazione prima funzione per il calcolo dell’area di un quadrato
double area(double a)
{
return a*a;
}
// dichiarazione della stessa funzione area per il calcolo del triangolo
double area(double a, double b)
{
return a*b;
}
int main()
{
int i;
double l,b,h;
cout<<“Di quale figura vuoi calcolare la superficie?”<<endl;
cout<<” 1- Quadrato”<<endl;
cout<<” 2- Triangolo”<<endl;
cin>>i;
if (i==1)
{
cout<<“Inserisci il lato del quadrato: “<<endl;
cin>>l;
cout<<“La superficie del quadrato risulta: “<<area(l);
}
if (i==2)
{
cout<<“inserisci la base del triangolo: “<<endl;
cin>>b;
cout<<“inserisci altezza del triangolo: “<<endl;
cin>>h;
cout<<“La superficie del triangolo risulta: “<<area(b,h);
}
return 0;
}[:]