Предварительное предположение, пока не будет предоставлен дополнительный код.
Возможно, вы зависите от неправильного порядка инициализации.Некоторые варианты следующего:
class MyClass {
public:
MyClass() :
somehash(new QHash<QString, QList<MyClass*> >()),
pdList(new QList<QString>(somehash->keys())) {}
private:
QList<QString> *pdList;
QHash<QString, QList<MyClass*> > *somehash;
};
pdList
всегда будут инициализироваться до somehash
.Это порядок, в котором они перечислены как члены данных, а не в конструкторе, который определяет его.Некоторые компиляторы позволяют вам размещать их в неправильном порядке в списке инициализации конструктора;другие не будут.
Это всего лишь предположение;если вы предоставите больше информации, сообщество сможет лучше вам помочь.