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.