PDA

View Full Version : [C++] Uso di CONST


86pietro
23-01-2018, 18:21
Sto cercando di capire il funzionamento di const inserito dopo una funzione

Leggo che serve ad impedire, riferendosi a questo caso, che l'invocazione del metodo (quello seguito da const) causi modifiche sull'istanza che lo invoca https://78.media.tumblr.com/7c00feda40388a26901874379e348285/tumblr_p30t0unyW41re64jjo1_540.png

Ma quello che non capisco è come sia possibile da parte dell'utente modificare l'istanza. Cosa cambia se non si usa const?

balth@zar
24-01-2018, 09:53
Sto cercando di capire il funzionamento di const inserito dopo una funzione

Leggo che serve ad impedire, riferendosi a questo caso, che l'invocazione del metodo (quello seguito da const) causi modifiche sull'istanza che lo invoca https://78.media.tumblr.com/7c00feda40388a26901874379e348285/tumblr_p30t0unyW41re64jjo1_540.png

Ma quello che non capisco è come sia possibile da parte dell'utente modificare l'istanza. Cosa cambia se non si usa const?

L'aggiunta di const dichiara che il metodo non modifica l'istanza, il compilatore, in presenza di tale dichiarazione, verifica che il metodo rispetti tale specifica; in questo caso è rispettata quindi il codice compila correttamente.
L'utilità della dichiarazione di metodi const si ha soltanto quando vengono utilizzate istanze a loro volta const della classe.
In pratica se hai una variabile così dichiarata:
const Point2D p;
Puoi utilizzare i metodi di p solo se sono stati dichiarati const anch'essi, altrimenti il compilatore dà errore, perche i metodi potrebbero potenzialmente modificare l'istanza.

86pietro
24-01-2018, 16:34
Ho capito, ti ringrazio