Я использую wxWidgets и у меня есть функция поиска в редакторе карт для моей онлайн-игры.
Я ищу объекты по различным критериям и помещаю эти объекты в список ComboBox по их имени, а такжедобавить объект в качестве справочных данных (void*
),
У меня есть событие onClickResult
Я хочу отметить и перейти к объекту, который работает, но он вызывает сбой моего приложения при переключении между типами объектов, как кажется, яне может "reinterpret_cast
" определить объекты класса, которые не имеют никакого отношения (без подклассов, два независимых класса без какого-либо отношения).
Вопрос: есть ли способ определить, какой тип данных находится в void*
(event.GetClientData()
возвращает void*
) и правильно разыграть его?
void SearchResultWindow::OnClickResult(wxCommandEvent& event) {
Item* item = reinterpret_cast<Item*>(event.GetClientData());
if (item) {
this->selectRelatedMapItem(item);
} else {
Creature* creature = reinterpret_cast<Creature*>(event.GetClientData());
if (creature) {
this->selectRelatedMapCreature(creature);
}
}
}
Спасибо!