Пропадает std::list
От: ef1 Россия  
Дата: 05.12.05 11:50
Оценка:
Не подскажете, запутался:
в своем классе определяю лист
typedef std::list<CAcadDocumentWrapper> lDocumentsList;       
    lDocumentsList mListDocs;    
typedef std::list <CAcadDocumentWrapper>::iterator Iter;
        Iter IterDocs;
typedef std::list <CAcadDocumentWrapper>::const_iterator ConstIter;
    ConstIter pIterADoc;

в листе храняться врапперы COM интерфейса Document сервера AutoCAD, и в моем классе есть функция работающая с этим листом
void CMyAutoCAD::Refresh()
{ 
...
    if (!mListDocs.empty())
    {                                                                        
    for (pIterDocs = mListDocs.begin(); pIterDocs != mListDocs.end(); pIterDocs++ )
        {
        if (pIterDocs!=pIterADoc)
        mListDocs.erase(pIterDocs);
            }
    }
    else
...

и получается когда я вызываю функцию Refresh() из своего (родительского) класса — все работает массив заполняется/удаляется/имеет размер, а когда я затем вызываю ее-же из класса (определеного в родительском как указатель на класс обрабатывающий события сервера) через указатель на родительский — list оказывается неинициализирован и работать с ним нельзя, а почему?? (вылетает уже на строчке с проверкой листа на то что он не пустой)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.