posto il codice:
questa è la classe in cui trovo n array m_tagsLoadData
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();
}
se carico l'array cosi':
codice:
pType->SetTagsLoadData(*pLoadDataArray);
dove pLoadDataArray è un array tutto funziona e fuori dalla funzione mi ritrovo l'array caricato.
MEntre se faccio cosi':
codice:
pType = pCase->getByID(*nBLType);
dove getbyID ritorna una classe CSapLoadType con array caricato correttamente; fuori dalla funzione il contenuto dell'array sparisce!
come mai?
grazie.