CIao.
Ho la seguente funzione:
ora , il puntatore quando esce da :codice:dichiarazione: if(! StackIfc.top()->GetData(localName, m_strCurrStr, m_nPos, pOldIfc)) implementazione: bool CWallStandardCaseIfc::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; pIfcValue = this; return false; } if(tag.compare(L"Name") == 0 ) m_Name = value; if(tag.compare(L"Description") == 0 ) m_Description = value; if(tag.compare(L"IfcProductDefinitionShape") == 0) m_ProductDefinitionShape =(CProductDefinitionShapeIfc*) pIfcValue; }
richiamata da una altra classe dopo essersi settato a this:codice:if(! StackIfc.top()->GetData(localName, m_strCurrStr, m_nPos, pOldIfc))
codice:if(tag.compare(getType())==0) { m_bHasData = false; pIfcValue = this;//setto a this dall' interno della classe return false; }
il puntatore pOldIfc(checorrisponde a pIfcValue) perde i valori , e non riesco a capire perchè.
Non è un puntatore?
grazie.

Rispondi quotando