CIao.
Ho la seguente funzione:
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;
}
ora , il puntatore quando esce da :
codice:
if(! StackIfc.top()->GetData(localName, m_strCurrStr, m_nPos, pOldIfc))
richiamata da una altra classe dopo essersi settato a this:
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.