L'overloading degli operatori
Ogni linguaggio di programmazione e` concepito per soddisfare determinati requisiti;
i linguaggi procedurali (come il C) sono stati concepiti per realizzare applicazioni
che non richiedano nel tempo piu` di poche modifiche. Al contrario i linguaggi
a oggetti hanno come obiettivo l'estendibilita`, il programmatore e` in grado
di estendere il linguaggio per adattarlo al problema da risolvere, in tal modo
diviene piu` semplice modificare programmi creati precedentemente perche` via
via che il problema cambia, il linguaggio si adatta. Famoso in tal senso e`
stato FORTH, un linguaggio totalmente estensibile (senza alcuna limitazione),
tuttavia nel caso di FORTH questa grande liberta` si rivelo` controproducente
perche` spesso solo gli ideatori di un programma erano in grado di comprendene
il codice.
Anche il C++ puo` essere esteso, solo che per evitare i problemi di FORTH vengono
posti dei limiti: l'estensione del linguaggio avviene introducendo nuove classi,
definendo nuove funzioni e (vedremo ora) eseguendo l'overloading degli operatori;
queste modifiche devono tuttavia sottostare a precise regole, ovvero essere
sintatticamente corrette per il vecchio linguaggio (in pratica devono seguire
le regole precedentemente viste e quelle che vedremo adesso).
|