Estratto del documento

=

RIASSUNTO CAPITOLO 8 PROGRAMMAZIONE LIBRO

Puntatori

- 8.1: puntatori

Il C++ fornisce una nuova parola chiave per indicare che un puntatore è nullo, ossia

nullptr. Nelle versioni preceden= al C++03 compresa per indicare che un puntatore

era nullo si usava il valore 0 in quanto esso è un =po fondamentale e quindi non può

essere conver=to in 0 o in nessun altro numero.

Il vantaggio offerto dalla parola chiave nullptr è quello di rendere il codice più chiaro

da leggere e quindi sicuro. Inoltre, a differenza del C, il C++ fornisce tre nuove

=pologie di puntatori “intelligen=” (smart pointer).

- 8.2: auto

Essendo il C++ un linguaggio fortemente =pizzato, per memorizzare il risultato di

un’espressione in una variabile è necessario conoscere il =po dell’espressione, cosa

che può risultare molto verbosa sopraOuOo se si traOa di un’espressione generica.

Nel C++11 si può chiedere al compilatore di inferire il =po che può essere dedoOo

dalla dichiarazione delle espressioni. Ciò può essere faOo usando la parola chiave

auto al posto del =po della variabile che dev’essere obbligatoriamente inizializzata

visto che il compilatore non saprebbe come inferire il =po.

La parola chiave auto ignora la costanza dei =pi, ma non quella dei =pi punta= come

per esempio un puntatore a const; nel caso si desideri la costanza questa dev’essere

chiesta esplicitamente.

L’uso di auto semplifica molto le dichiarazioni di =pi complessi come quelli usato

nell’STL o smart pointer.

Ul=ma cosa che si può dire su auto è che può essere combinato con un nuovo =po di

dichiarazione del valore di ritorno deOo trailing return type e il =po ritornato viene

indicato dopo l’elenco dei parametri usando ->.

- 8.3: decltype

Se si vuole far dedurre al compilatore un =po di una variabile senza che questa venga

inizializzata si può usare lo specificatore decltype. In ques= casi il compilatore

analizza l’espressione e ne inferisce il =po.

Nel caso l’espressione sia una variabile decltype ne man=ene costanza o l’essere un

riferimento a variabile.

Nel caso di espressioni che rendono oggeX, che possono essere a sinistra di

un’assegnazione, decltype farà si che il =po inferito sia un riferimento ad essi.

- 8.4: seman=ca move

Un lvalue è un’espressione che rende una funzione o un oggeOo ed indica

normalmente un’espressione che può stare a sinistra di un’assegnazione anche se

non è sempre vero.

Essendo degli l’value delle locazioni si riferiscono a locazioni di memoria e usando

l’operatore & si oXene l’indirizzo di locazione.

Un rvalue, invece, è un’espressione che rende un valore ma non è associata alla

l

Anteprima
Vedrai una selezione di 3 pagine su 7
Appunti riassuntivi Programmazione (parte 5, puntatori e design pattern) Pag. 1 Appunti riassuntivi Programmazione (parte 5, puntatori e design pattern) Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Appunti riassuntivi Programmazione (parte 5, puntatori e design pattern) Pag. 6
1 su 7
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