ciao.
ho un insieme di classi che eredintano da una classe base che hanno questa funzione(l'implementazione della funzione varia a secondo della classe:
ho un ciclo che scorre un xml con sax e mi ritorna i valori a questo punto chiamo la gedata:codice:bool CProductDefinitionShapeIfc::GetData(wstring tag, wstring value, int pos, CBaseIfc** pIfcValue) { if(!m_bHasData) return true; //il tag di apertura è uguale al tag di chiusura = fine classe if(tag.compare(getType())==0) { m_bHasData = false; return false; } if(tag.compare(L"Name") == 0 && m_Name.compare(L"")==0) m_Name = value; else if(tag.compare(L"Description") == 0) m_Description = value; if(tag.compare(L"IfcShapeRepresentation") == 0) m_ShapeRepresentation[pos] =(CShapeRepresentation*) pIfcValue; return true; };
in pratica in questo modo carico le mie classi coi dati.codice:for(int i = 0 ; to fine xml) ClasseCorrente->GetData(wstring tag, wstring value, int pos, CBaseIfc** pIfcValue)
quando ho completato di caricare la classe coi dati metto la classe in una mappa con un indice univoco per dopo:
Nell'applicazione ho un insieme di tag con un ref o un id all id corrispondono i ref e viceversa.codice:for(int i = 0 ; to fine xml) ClasseCorrente->GetData(wstring tag, wstring value, int pos, CBaseIfc** pIfcValue) mappa_Oggetti[indiceunivoco]=ClasseCorrente
quando trovo un indice univoco ref estraggo dalla mappa l'indirizzo dell' id relazionato e vorrei assegnare al ref un altro indirizzo , quello della classe relazionata in modo da andare a "riempire" il ref con l'id , vorrei utilizzare se possibile un sistema con gli indirizzi e non i valori.
magari con un indirizzo ad un indirizzo **?ma non ci salto fuori.
E' possibile?
Grazie.

Rispondi quotando