Estratto del documento

m

=

Programmazione Object-oriented in C++

RIASSUNTO CAPITOLO 1 PROGRAMMAZIONE LIBRO

- 1.1: conce) chiave dell’OO

Le principali proprietà della programmazione OO sono:

1. Incapsulamento: I da= vengono incapsula= all’interno di un ogge>o e vis= più

in termini di quali operazioni si possono effe>uare su di essi e non più

solamente come valori puri dei da=, cioè come ADT. Ciò è possibile a>raverso

il principio di informa=on hiding, cioè nascondendo i de>agli implementa=vi

per quanto riguarda il formato dei da= e delle operazioni. In C++ lo strumento

principale che serve ad implementare gli ADT sono le classi.

2. Ereditarietà: Si basa sull’idea che alcune classi, che vengono chiamate classi

derivate, ereditano le funzionalità e le funzioni di classi più generiche che

vengono chiamate classi base. In C++ una classe può estendere più classi base.

3. Polimorfismo: Ogge) di diversi =po vengono tra>a= allo stesso modo ed è

compito del sistema soRware capire quale funzionalità di quale ogge>o deve

essere usata in un par=colare momento a seconda del =po che viene usato. In

C++ tale tecnica è supportata dall’uso delle funzioni virtuali e dal

sovraccaricamento di funzioni e operatori.

- 1.2: classi e ogge)

Fondamentalmente la programmazione OO si basa sui conce):

1. Ogge): sono istanze reali di en=tà soRware che contengono informazioni e su

cui si possono applicare delle operazioni per agire sull’informazione in essi

contenuta.

2. Classi: Sono insiemi di ogge) che si comportano tu) allo stesso modo e

contengono l’implementazione dei da= e delle operazioni che possono essere

effe>uate su di essi. A par=re da una classe si possono “istanziare” ogge).

A livello di programmazione si può dire che una classe serve a rappresentare un’idea

o un conce>o nel codice; mentre gli ogge) rappresentano specifici esempi o istanze

nel codice.

- 1.3: lo sviluppo OO

In un ambiente di sviluppo OO si possono iden=ficare le seguen= fasi:

1. Analisi OO: Si iden=ficano i requisi= funzionali di un sistema, delle classi e

delle loro relazioni.

2. Design OO: Si occupa di specificare le gerarchie di classi, delle loro interfacce e

comportamen=. In questa fase vengono usa= i diagrammi UML. Dunque, si

può dire che i suoi scopi principali sono:

i. Creare programmi che siano flessibili in caso di aggiunta di nuove

funzionalità e un soRware che sia altamente coeso e al tempo stesso

con accoppiamento lasco, ossia la modifica di una componente non

comporta una modifica ad un’altra componente ad essa associata.

ii. Decomporre un sistema in moduli, così da poter iden=ficare dipendenze

e forme di comunicazione; da qui si iden=ficano le classi e le varie

relazioni di ereditarietà e come queste vengano usate

3. Programmazione OO: Viene implementato il design OO o>enuto nella fase

precedente in un linguaggio di programmazione OO.

In conclusione, si può dire che la parte di analisi si occupa di dire al sistema cosa

deve fare, mentre quella di design di assicurarsi come il sistema svolga i suoi compi=.

Infine, nella parte di programmazione, ci si occupa delle problema=che rela=ve ai

linguaggi di programmazione e dell’implementazione dei soRware. Quindi, i modelli

iden=fica= nell’OOD vengono implementa= in base alle funzionalità del linguaggio di

programmazione scelto, rispe>andone gli aspe) idioma=ci.

#

Il linguaggio C++

RIASSUNTO CAPITOLO 2 PROGRAMMAZIONE LIBRO

Sebbene il C++ sia un linguaggio OO, in realtà è più corre8o dire che è un linguaggio

mul<-paradigma, ossia che supporta diversi s<li di programmazione che sono:

1. Procedurale: visto che il C++ discende dal C, supporta ogni tecnica di

programmazione del C.

2. Orientata agli oggeE: dato dalla presenza delle proprietà di incapsulamento,

ereditarietà e polimorfismo delle classi del C++.

3. Generica: Dato dal meccanismo dei template che consente di parametrizzare i

<pi in funzioni e classi.

4. Funzionale: Data dall’introduzione delle espressioni lambda, ossia funzioni

senza nome.

- 2.3: riferimen<

Nel C++ è stato introdo8o un nuovo modificatore di <po per effe8uare i riferimen< a

variabile. A livello sintaEco si rappresenta con una & interposto fra il <po e il nome

della variabile fungendo, dunque, come alias o sinonimo di una variabile. Ciò vuol

dire che qualunque operazione venga fa8a sul riferimento in realtà è effe8uata sulla

variabile.

InfaE, un riferimento a variabile deve sempre mantenere un conta8o dire8o con la

variabile a cui si riferisce la quale, quindi, deve essere inizializzata. Inoltre, un

riferimento una volta inizializzato non può riferirsi ad altre variabili.

Cosa importante è da non confondere il modificatore di <po & con l’operatore di

indirizzo & poiché il primo serve, come già de8o, a riferirsi ad una variabile nel

momento in cui viene dichiarata mentre il secondo viene usato per valutare una

variabile.

- 2.3.1: Riferimen< vs puntatori

Puntatori Riferimen<

Si comportano come variabili normali e possono Devono essere inizializza3.

essere dichiara3 senza essere inizializza3.

Possono essere nulli, cioè non puntare ad un Non hanno un valore nullo.

indirizzo.

Possono essere di 3po void. Non si possono avere riferimen3 a void.

È possibile assegnarli qualsiasi valore, possono Non possono essere assegna3; si riferiscono

quindi puntare ad una qualsiasi variabile dello sempre alla stessa variabile.

stesso 3po.

Si può adoperare mediante l’aritme3ca dei Non hanno aritme3ca.

puntatori.

Dalla tabella, dunque, possiamo notare che i puntatori possono essere usa< per due

scopi diversi, ossia come flag quando l’indirizzo è

Anteprima
Vedrai una selezione di 4 pagine su 12
Appunti riassuntivi Programmazione (parte 1, linguaggio C++) Pag. 1 Appunti riassuntivi Programmazione (parte 1, linguaggio C++) Pag. 2
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Appunti riassuntivi Programmazione (parte 1, linguaggio C++) Pag. 6
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Appunti riassuntivi Programmazione (parte 1, linguaggio C++) Pag. 11
1 su 12
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Sarina24 di informazioni apprese con la frequenza delle lezioni di Programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Marco Bertini.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community