Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Второй архив вопросов и ответов (https://www.otvetnemail.ru/vtoroj-arhiv-voprosov-i-otvetov-801/)
-   -   Удаление объекта из списков QList, QSet...при вызове деструктора объекта (https://www.otvetnemail.ru/vtoroj-arhiv-voprosov-i-otvetov-801/udalenie-ob-ekta-iz-spiskov-qlist-qset-pri-vyzove-destruktora-ob-ekta-258211/)

Guest 28.09.2011 17:23

Удаление объекта из списков QList, QSet...при вызове деструктора объекта
 
Привет всем!Чета заморочился, не могу найти подходящего решения...Есть некий объект Т (от QObject), УКАЗАТЕЛЬ на объект одновременно находится в разных списках QList, QSet и т.п.необходимо при удалении объекта, удалять указатель на него из всех списков, автоматически.я решил использовать сигнал destroyed(QObject*object), и создать свои классы List, Set, где при добавлении подписывать список на сигнал объекта destroyed(....) типа:Код:template class List : public QList{public: T add(T item){ append(item); connect(item, SIGNAL(destroyed(QObject*), this, SLOT(_destroyed(QObject*))); }private slot: void _destroyed(QObject*object){ removeOne(object); // как-то так.... }};Но! Qt пишет, что не может использовать Q_OBJECT в классах-шаблонах...что делать, может есть другое решение ?


Часовой пояс GMT, время: 07:29.


© www.otvetnemail.ru - Форум вопросов и ответов.