C++: function overloading

Jacek Yerka

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;
}

Informazioni su Francesco Bragadin

Insegno informatica e telecomunicazioni al liceo scienze applicate ed all'indirizzo informatica e telecomunicazioni. Ho terminato gli studi in ingegneria elettronica e telecomunicazioni lavorando per molti anni come libero professionista nell'ambito della gestione storage e disaster recovery su mainframe.
Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *