View Full Version : [C++/OOP] Visibilità GET e SET
86pietro
10-12-2017, 20:47
Ho una classe con funzioni SET e GET
I parametri passati nella SET sono passati per valore
Ma un parametro passato per valore non ha visibilità limitata a quella funzione (cioè la funz. SET)?
Come fa la GET a "vedere" quegli stessi valori e a restituirli?
Grazie
Ho una classe con funzioni SET e GET
I parametri passati nella SET sono passati per valore
Ma un parametro passato per valore non ha visibilità limitata a quella funzione (cioè la funz. SET)?
Come fa la GET a "vedere" quegli stessi valori e a restituirli?
Grazie
Ci vogliono variabili interne alla classe che restano private.
La set imposta il valore di _valore e la get lo torna.
Ho una classe con funzioni SET e GET
I parametri passati nella SET sono passati per valore
Ma un parametro passato per valore non ha visibilità limitata a quella funzione (cioè la funz. SET)?
Come fa la GET a "vedere" quegli stessi valori e a restituirli?
Grazie
nell'implementazione della set di solito si copia il valore del parametro all'interno di una variabile private della classe a cui la get può accedere.
comunque posta il codice incriminato così lo vediamo
86pietro
11-12-2017, 11:15
È un esercizio semplice, il mio più che altro è un dubbio su un aspetto teorico
Ho l'interfaccia di una classe numero complesso
class Complex{
private:
float Re;
float Im;
public:
Complex(float RE=0.0,float IM=0.0){Re=RE;Im=IM;} //costruttore
float getRe()const {return Re;} //GET
float getIm()const {return Im;} //GET
void setRe(float RE){Re=RE;} //SET
void setIm(float IM){Im=IM;} //SET
}
Il mio dubbio è: la visibilità del parametro passato per valore alla set non dovrebbe essere limitata alla funzione set? Come fa quel valore ad "arrivare"
alla funzione get? Non dovrei usare un passaggio per riferimento o per indirizzo per quello? O nella classe questa regola non vale?
(ad es. chiamo la funzione setRe(10), cioè passo a Re il valore 10. Ma dovrebbe essere limitato alla funzione set, o no?)
La variabile a cui mi riferivo io è proprio come Re
La variabile a cui mi riferivo io è proprio come Re
Re è una variabile della classe definita come privata quindi è visibile a tutti i metodi della classe siano essi privati pubblici o protetti
occhio che RE e Re hanno due scope nettamente diversi RE è il parametro della funzione e ha uno scope limitato solo alla funzione (quello che pensavi tu) ma se nel corpo della funzione assegni a Re il valore di RE imposti la variabile interna al valore di RE ed è quello che viene ritornato dalla funzione GET
86pietro
12-12-2017, 09:08
Ho capito, grazie mille
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.