Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > В чем смысл qgraphicsitem_cast ?


Автор: wowka19 30.4.2014, 14:36
сабж, а вернее в чем смысл использования этой конструкции? Ведь, перебирая QList<QGraphicsItem*> не избежать следующего кода (или подобного):



Код

switch (Item->type())
{
    case QGraphicsRectItem::Type: QGraphicsRectItem *rect = (QGraphicsRectItem*) Item;
    ...; // что-то делаем c rect
    break;

    case QGraphicsEllipseItem::Type: QGraphicsEllipseItem *ell = (QGraphicsEllipseItem*) Item;
    ...; // что-то делаем c ell
    break;
    
    case и т.д....

    default:
    // не интересующий нас елемент
    break;
}

Автор: Amp 30.4.2014, 17:47
Смысл в безопасном приведении типов. Аналог dynamic_cast, но без RTTI. Возможно, хотя не факт, что чуть быстрее (по сути обычный static_cast с дополнительной проверкой). Требует корректно перегруженного type(). Конкретно для приведенного кода смысла в нем нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)