Il C++ è un'invenzione del matematico americano Bjarne Stroustrup che negli
anni '80, dipendente presso l'azienda AT&T-Bell Laboratories, decise di
mettere a punto un nuovo linguaggio di programmazione che gli consentisse
di simulare in maniera efficace le centraline di commutazione telefonica.
La situazione nel mondo della ricerca universitaria a quel tempo era la seguente:
da un lato cominciava ad affermarsi il linguaggio C per la sua potenza e versatilità,
dall'altro si facevano strada le prime teorie di Programmazione
Orientata ad Oggetti. Da questo contesto accademico, Stroustrup trasse
l'ispirazione che lo portò a unire queste due realtà: C e OOP.
Era l'inizio di una grande avventura che avrebbe radicalmente segnato
il futuro percorso dell'informatica!
In questo paragrafo si vuole descrivere degli esempi di carattere generale, non necessariamente inerenti alla programmazione.
La metodologia di programmazione Object Oriented rivoluziona il modo classico
di programmare. Essa parte dal presupposto che un qualsiasi oggetto della
realtà quotidiana può essere schematizzato nel modo seguente:
Restando sempre ben ancorati al mondo reale, è utile soffermarsi su un altro aspetto altrettanto
basilare per la OOP: l'Astrazione Concettuale.
Un oggetto è caratterizzato da determinate proprietà che lo distinguono
da oggetti della medesima specie: ad esempio, nel caso del telefono cellulare sopracitato, esso sarà
caratterizzato dalla marca, dal tipo di protocollo di comunicazione (ETACS, GSM, DECT), dalla
frequenza di trasmissione (900 MHz, 1800 MHz), dalla memoria interna della rubrica
telefonica, dall'autonomia della batteria, etc. Queste ed altre proprietà differenziano un cellulare da
un altro: tutti però sono oggetti accomunati dall'appartenere ad una stessa categoria , ossia
la categoria "Telefono Cellulare" - che quindi può essere considerata come un'astrazione
concettuale - di cui condividono alcune proprietà ed alcune funzioni.
Tale schematizzazione si concretizza nella OOP con il concetto di Classe.
L'ultimo aspetto a cui si vuole accennare in questa breve Introduzione è l'Ereditarietà.
Si tratta di un concetto legato alla teoria dell'evoluzione biologica sviluppata
dal famoso scienziato Charles Darwin.
Si consideri il seguente esempio zoologico.
Il "Gatto" è un caso particolare di "Mammifero".
Un Mammifero è un caso particolare di "Animale Vertebrato".
Un Animale Vertebrato è un caso particolare di "Animale".
E' dunque possibile descrivere questi concetti in modo gerarchico, ovvero graficamente
attraverso una struttura ad albero. Un processo di questo tipo si dice Derivazione.
Da questo esempio si nota come attraverso l'uso di strutture gerarchiche sia possibile
rappresentare in modo efficiente e senza sprechi dati ed eventuali funzioni associati
ad essi. Infatti, qualsiasi istanza del concetto di Animale è caratterizzato da
determinate funzioni (mangia, respira, cresce, si riproduce). Un Animale Vertebrato, oltre
ai dati precedenti, ha in più una colonna vertebrale. Un Mammifero ha in più la capacità
di allattare i piccoli.
Un Gatto, oltre alle caratteristiche precedenti, ha 4 zampe, è un Animale domestico, etc.
Per ora è tutto!
Nel prossimo capitolo vengono ripresi i concetti fin qui illustrati per essere calati
nel contesto del linguaggio di programmazione C++.
![]() Precedente |
![]() Home page |
![]() Successivo |