PDA

View Full Version : [C++] problemi con passaggio di valori per riferimento


santaclause83
22-11-2008, 15:13
volevo avere un oggetto Node che avesse 3 campi:

--le coordinate del nodo
--il vettore dei nodi vicini
--un booleano per facilitare una visita nel caso voglia creare un grafo non orientato

l'oggetto che ho in mente e'


Node::Node(wxPoint pos, vector <Node> bros, bool visit)
{
posizione = pos; //posizione wxPoint sulla finestra del nodo this
vicini = bros; //puntatore a vettore di nodi vicini a this
visitato = visit; //booleano per un eventuale metodo di ricerca
}


DOMANDA/PROBLEMA: se voglio che ogni coordinata e booleano di ogni nodo del grafo possa essere dereferenziata dalla stessa locazione di memoria per ogni nodo che vi possa accedere per modicicarla, come inizializzo i vettori e le coordinate?

e' un problema di passaggio di valori per riferimento, ma nn riesco a trovare una soluzione e comunque passo i valori l'eseguibile mi si pianta

suggerimenti?

thanxalot

cionci
22-11-2008, 15:33
DOMANDA/PROBLEMA: se voglio che ogni coordinata e booleano di ogni nodo del grafo possa essere dereferenziata dalla stessa locazione di memoria per ogni nodo che vi possa accedere per modicicarla, come inizializzo i vettori e le coordinate?
Spiega meglio con un esempio.

santaclause83
22-11-2008, 17:27
voglio disegnare su schermo un grafo non orientato

mi piacerebbe avere un modello che mi permetta di avere la stessa struttura dati, condivisa sia dai metodi per disegnarlo sia da quelli per modificarlo (nel caso lo voglia muovere, quindi modificarne le coordinate)


MetodoModificaPosizioneNodo(Nodo){
for( ogni nodo del vettore di figli associato a Nodo)
modifica x e y delle coordinate del Nodo;
}

MetodoDisegnaGrafo(Nodo){
disegna Nodo;
for (ogni nodo del vettore di figli associato a Nodo)
disegna arco dati i vertici di Nodo e di FiglioNodo[i];
}


nn credo sia difficile da ottenere ma tutte le volte che mi riscontro coi puntatori mi ci incastro

santaclause83
24-11-2008, 11:37
up :help:

cionci
24-11-2008, 11:53
I metodi per modificarlo faranno parte della classe Nodo mi immagino, quindi qual'è il problema ?

santaclause83
24-11-2008, 19:07
il mio problema sta nel fatto che la variabile che fa riferimento alle coordinate di ciascun nodo

1-voglio inizializzarla e passarla a ogni altro nodo che sia vicino del questo

2-voglio sia modificata una volta per tutte, per tutti i nodi, quando le coordinate del nodo si muovono sulla form

e' un problema di gestione di puntatori in modo che il mio passaggio di parametri sia per riferimento e nn per valore, ma per come l'avevo impostato il programma mi scoppiava sempre dal secondo nodo inizializzato.:muro:

ora, quello che chiedo e' un parere su come passargli i riferimenti se il mio oggetto Nodo e' una struttura del tipo


Node::Node(wxPoint pos, vector <Node> bros, bool visit)
{
posizione = pos; //posizione wxPoint sulla finestra del nodo this
vicini = bros; //puntatore a vettore di nodi vicini a this
visitato = visit; //booleano per un eventuale metodo di ricerca
}




thanx!