Приветствую!В моем случае на сцене хранится набор указателей на элементы, наследованные от QGraphicsItem.Необходимо пробегаться и приводить к реальным типам.Как быть?Код таков (тестовый поэтому корявый)Код: QList::iterator it = m_scene->items().begin(); bool _b = false; for (; it != m_scene->items().end(); ++it) { _b = !_b; QGraphicsItem* _item = *it; Chip* _chip = dynamic_cast(_item);// Chip* _chip = static_cast(_item); if(_b) _chip->changeColor(); else _chip->restoreColor(); }Вываливается вот такая ошибкаЦитировать---------------------------Получен сигнал---------------------------Приложение остановлено, так как оно получило сигнал от операционной системы.Сигнал: SIGSEGVНазначение:Segmentation fault---------------------------Метод dynamic_cast выдает ошибку сегментирования прямо в момент примененияМетод static_cast проходит, но ошибка вываливается в кодеКод:void Chip::changeColor(){ m_even = true;}Как быть? Как приводить типы? И как красиво итерировать? Может я не так делаю???
|