Поскольку вы создаете новый model_
для каждого нового экземпляра вашего класса X
(каждый раз, когда запускается конструктор), описываемая вами проблема, кажется, сводится к чему-то длинному; перезапись.
Вероятно, он перезаписывается другим вновь созданным экземпляром после установки какого-либо состояния в X::update
.
Это лучший ответ, который я могу вам дать без дополнительной информации по этому вопросу.
Простой пример решения
struct Obj {
Obj () {
std::cerr << "model_: " << *model_ << std::endl;
++(*model_);
}
static int * model_;
};
int * Obj::model_ = new int (); // initialize the static member
int
main (int argc, char *argv[])
{
Obj a, b, c;
}
Опечатка?
Я предполагаю, что эта часть вашего фрагмента содержит опечатку, поскольку конструктор не может иметь тип возвращаемого значения.
X::QFileSystemModel* model_
X::X()
{
model_ = new QFileSystemModel(this);
}