PDA

Visualizza la versione completa : [VC++] Classi e visibilità


bigmickey
11-10-2005, 15:46
Devo apportare delle modifiche ad un codice.

Ho creato una nuova finestra di dialogo ed ho bisogno di leggere una variabile stringa dichiarata in un metodo della DIALOG principale.
Che modifiche devo apportare al codice per poterla rendere visibile anche alle altre DIALOG?
Credo che il problema sia lo stesso di: ho una variabile dichiarata in un metodo di una classe, come faccio a renderla visibile ad un'altra classe? Spero di essere stato chiaro.

bigmickey
11-10-2005, 15:58
Ci riprovo......
Se anzichè dichiarare una variabile in un metodo della classe, la sposto negli attributi public della stessa, le altre classi possono leggere e modificare quella variabile? C'è bisogno di altre dichiarazioni nelle altre classi?

bigmickey
11-10-2005, 17:17
Centra niente "friend"?

bigmickey
12-10-2005, 12:43
Faccio un ultimo tentativo...mi spiego meglio.
Ho creato un applicazione Dialog Based, qui ho dichiarato una variabile membro di tipo CString pubblica, dopo averla acquisita voglio che vanga passata ad una seconda finestra di Dialogo che ho creato. Credo che sia un' operazione che di faccia spesso...

anx721
12-10-2005, 14:28
una delle due finestr di dialogo deve avere riferimento al'altra o un terzo oggetto deve avere un riferomento a entrambe le finestre

pprllo
12-10-2005, 15:48
Metti una globale puntatore, chiamala dlg1 e all'inizializzazione del prima dialog metti dlg1 = this; accedi poi a quello che ti serve tramite un puntatore.

anx721
12-10-2005, 15:54
Originariamente inviato da pprllo
Metti una globale puntatore, chiamala dlg1 e all'inizializzazione del prima dialog metti dlg1 = this; accedi poi a quello che ti serve tramite un puntatore.

non è la soluzione piu indicata e elegante per un'applicazine ad oggetti...

bigmickey
12-10-2005, 17:42
Grazie dell' aiuto, facendo un pò di prove adesso funziona, nn so sinceramente cosa sbagliassi...forse facevo riferimento alla variabile in questo modo Nomeclasse.nomevariabile, invece avrei dovuto riferirmi NomeIstanzaCreata.nomevariabile.
In fin dei conti quindi credo che sia sufficiente dichiarare la variabile da passare come pubblica ed includere nei file di header la finestra di dialogo.
Grazie cmq ;)

unomichisiada
13-10-2005, 00:57
Originariamente inviato da bigmickey
Grazie dell' aiuto, facendo un pò di prove adesso funziona, nn so sinceramente cosa sbagliassi...forse facevo riferimento alla variabile in questo modo Nomeclasse.nomevariabile, invece avrei dovuto riferirmi NomeIstanzaCreata.nomevariabile.
In fin dei conti quindi credo che sia sufficiente dichiarare la variabile da passare come pubblica ed includere nei file di header la finestra di dialogo.
Grazie cmq ;)
A rigore per mantenere l'incapsulamento di dati sarebbe meglio che tu dichiarassi quella variabile come private e scrivessi un metodo della classe che ce l'ha come attributo che ne restituisse il valore all'esterno.

Loading