CIao.
Ho questo problema:
Instanzio una classe col new e la metto in uno stack cosi:

[code]
CIfcProject m_root = new CIFcProject();
CObserverIfc* pElement = (CObserverIfc*)new CIfcOwnerHistory(strId, strRef);
m_Subject->StackIfc.push(pElement);
[code]

poi assegno in una funzione il puntatore a pElement ad un altro puntatore che all inizio č null
cosi:

codice:
class CIfcProject
{
.
public:
.
private:
CObserverIfc* m_pObserverIfc;
.
   void setPointer(CObserverifc* pData)
   {
       m_pObserverIfc = pData;//in questo modo vorrei copiare l'indirizzo di pData in
       //ObserverIfc
   }
   CObserverIfc* getData()
   {
     return m_pObserverIfc;
   }
}
fino qui tutto č corretto , ma se vado nel distruttore della classe base e prima di fare qualsiasi cosa provo a fare:
codice:
  CObserverIfc pObs = m_root->getData();
mi ritorna un valore NULL e non lo era!!!!.
E' una cosa che non sono riuscito a capire a fondo ,se tolgo da qualsiasi mappa o array o contenitore in genere che lo contiene quanto resiste un puntatore dopo essere instanziato ?
Ha la visibilitā della funzione?
č questo lo heap o zona di memoria in cui vengono messi i punttori ad oggetto?
scusate se sono domande banali , ma voglio colmare alla svelta questa lacuna che mi porto dietro da tanto , forse per aver fatto tutto per esperienza e mai letto un buon libro sul c++
(adesso sto leggendo thinking c++ se volete consigliarmi un capitolo di qualche libro...)
chiedo ...
ciao.