crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Наследование от QHash
daorus
  опции профиля:
сообщение 7.2.2011, 0:42
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 30.10.2010
Пользователь №: 2163

Спасибо сказали: 0 раз(а)




Репутация:   0  


Подскажите, пожалуйста, как правильно отнаследовать от QHash, чтобы в итоге расширенный класс (наследник) получил следующие возможности: принимал только один параметр - тип хранимых ссылок, и по clean() не только массив очищал, но и делал delete всех объектов, по ссылкам которые в нем хранятся.

например сейчас приходится так
QHash<QString, MyDataModel*> mys;
mys["one"] = new MyDataModel;
mys["two"] = new MyDataModel;
...
foreach(QString cursor, mys) delete mys[cursor];
mys.clean();


а хочется
QStrHash<MyDataModel*> mys;
mys["one"] = new MyDataModel;
mys["two"] = new MyDataModel;
...
mys.clean(); // и гарантированно утечек не будет


пробовал сам, но чё-то не догоняю
template <class Store> QStrHash : public QHash
{
public:
    ... // в общем не получается
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 7.2.2011, 0:59
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(daorus @ 7.2.2011, 0:42) *
foreach(QString cursor, mys) delete mys[cursor];
тут можно было воспользоваться qDeleteAll()
Цитата(daorus @ 7.2.2011, 0:42) *
как правильно отнаследовать от QHash

class QStrHash : public QHash<QString, MyDataModel*>
{
public:
    ... // в общем должно получиться
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


9 чел. читают эту тему (гостей: 9, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.1.2025, 19:50