Название: переобъявить переменную Отправлено: qlewer от Май 29, 2020, 13:17 имеется переменная model, которая, в зависимости от состояния переключателя, может быть QSqlQueryModel или QStandardItemModel. как в коде переобъявить переменную под нужный тип? такая конструкция не работает:
Код: QVariant *model; Название: Re: переобъявить переменную Отправлено: tux от Май 29, 2020, 14:02 Сурово. Одно наследуется от QAbstractItemModel, другое от QAbstractTableModel.
В принципе можно использовать Код: QAbstractItemModel *model; Название: Re: переобъявить переменную Отправлено: ViTech от Май 29, 2020, 14:05 Бьерн Страуструп: "Язык программирования С++", "6.2 Производные классы".
Указатели и ссылки на производные типы (http://www.c-cpp.ru/books/ukazateli-i-ssylki-na-proizvodnye-tipy). Название: Re: переобъявить переменную Отправлено: Igors от Май 29, 2020, 16:56 Проще переделать архитектуру проекта. Эта популярная дежурная фраза обычно (или никогда) никакой смысловой нагрузки не несет :)Почему не PIMPL и все такое? Здесь умничание вроде к месту Название: Re: переобъявить переменную Отправлено: navrocky от Май 29, 2020, 18:30 имеется переменная model, которая, в зависимости от состояния переключателя, может быть QSqlQueryModel или QStandardItemModel. как в коде переобъявить переменную под нужный тип? такая конструкция не работает: Код: QVariant *model; А что дальше ты с этой моделью планируешь делать? А так просто замени свой странный QVariant* на QAbstractItemModel* И рекомендую, чтобы больше не задавать таких вопросов, ознакомиться с наследованием в C++, внимательно вглядеться в документацию по Qt, для каждого класса указывается цепочка его предков. Также обязательно почитай что такое QVariant и как его использовать. Название: Re: переобъявить переменную Отправлено: tux от Май 30, 2020, 00:56 Эта популярная дежурная фраза обычно (или никогда) никакой смысловой нагрузки не несет :) Ну мало ли что задумал ТС. Но одна общая переменная для двух разных классов - явно плохая архитектура. Хотя, может ТС любит неявные баги ловить. :) |