[:it]
Il linguaggio C++ permette al programmatore di definire una propria libreria nella quale inserire blocchi di programma, utilizzabili da più sorgenti.
Essi possono essere inglobati nel listato del programma mediante la parola
#include<nome_del_namespace.h>
Ad esempio si crea il seguente blocco di programma:
namespace Rettangolo{
//dati
int base, altezza;
//funzioni
int Area(int, int);
int Perimetro(int,int);
}
int Rettangolo::Area(int b,int h)
{return b*h;
}
int Rettangolo::Perimetro(int b,int h)
{
return (b+h)*2;
}
si noti la seguente struttura:
- si ha una parte dati,
- una parte dichiarativa delle funzioni che verranno usate
- la definizione delle funzioni stesse che hanno però prima il nome del namespace::
Ecco poi il listato del programma che usa il namespace rettangolo:
#include<iostream>
#include<rettangolo.h>
using namespace std;
int main()
{
cout<<“Base: “;
cin>>Rettangolo::base;
cout<<“Altezza: “;
cin>>Rettangolo::altezza;
cout<<Rettangolo::Area(Rettangolo::base,Rettangolo::altezza)<<endl;
cout<<Rettangolo::Perimetro(Rettangolo::base,Rettangolo::altezza)<<endl;
}
si nota :
#include<rettangolo.h>
che include il namespace o blocco di programma definito in maniera esterna.
Ho creato una libreria in cui ho definito tutti i miei namespace.
Per evitare di dover scrivere ogni volta il riferimento al namespace rettangolo si può usare
using namespace Rettamgolo;
il codice del sorgente diventa:
#include<iostream>
#include<rettangolo.h>
using namespace std;
using namespace Rettangolo;
int main()
{
cout<<“Base: “;
cin>>base;
cout<<“Altezza: “;
cin>>altezza;
cout<<Area(base,altezza)<<endl;
cout<<Perimetro(base,altezza)<<endl;
}
Questo progetto, pur essendo molto semplice, fornisce un’idea dell’importanza del namespace e delle librerie disponibili per il programmatore, il quale può utilizzare, nei suoi programmi dati e funzioni senza conoscere l’effettiva implementazione con il codice C++. In questo modo si realizza l’information hiding (nascondere le informazioni), con i vantaggio di poter modificare, in tempi successivi le funzioni (e in generale le librerie) per renderle più efficienti, senza dover cambiare i programmi che le utilizzano.
Per esempio, il programma precedente, utilizza le variabili base, altezza e le funzioni Area e Perimetro, ma la loro implementazione non è presente nel programma perché è definita nel namespace Rettangolo. In pratica le funzioni rappresentano le interfacce che il programmatore utilizza per effettuare le elaborazioni sul rettangolo.
Il nome del namespace delle principali librerie del linguaggio C++ è std (standard)[:]