posto il codice:
questa è la classe in cui trovo n array m_tagsLoadData
se carico l'array cosi':codice:class CSapLoadType { public: CSapLoadType(); virtual ~CSapLoadType(); tagLoadData* getByID(int ID); void SetTagsLoadData(CTypedPtrArray<CPtrArray, tagLoadData*> &src); void RemoveTagLoadData(int iPos); void Sort(); int Count(); private: CTypedPtrArray<CPtrArray, tagLoadData*> m_TagsLoadData;}; IMPL: CSapLoadType::CSapLoadType() { } CSapLoadType::~CSapLoadType() { for(int i = 0; i < m_TagsLoadData.GetSize(); i++) delete m_TagsLoadData[i]; m_TagsLoadData.RemoveAll(); CTypedPtrArray<CPtrArray, tagLoadData*> m_TagsLoadData; } tagLoadData* CSapLoadType::getByID(int ID) { if(m_TagsLoadData.GetCount() <= ID) return NULL; tagLoadData* LoadData = m_TagsLoadData[ID]; return LoadData; } void CSapLoadType::RemoveTagLoadData(int iPos) { m_TagsLoadData.RemoveAt(iPos); } void CSapLoadType::SetTagsLoadData(CTypedPtrArray<CPtrArray, tagLoadData*> &src) { m_TagsLoadData.Append(src); } int CSapLoadType::Count() { return m_TagsLoadData.GetCount(); }
dove pLoadDataArray è un array tutto funziona e fuori dalla funzione mi ritrovo l'array caricato.codice:pType->SetTagsLoadData(*pLoadDataArray);
MEntre se faccio cosi':
dove getbyID ritorna una classe CSapLoadType con array caricato correttamente; fuori dalla funzione il contenuto dell'array sparisce!codice:pType = pCase->getByID(*nBLType);
come mai?
grazie.

Rispondi quotando