Russian Qt Forum
Ноябрь 27, 2024, 06:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: foreach и собственный класс-контейнер  (Прочитано 4036 раз)
Alf
Гость
« : Октябрь 24, 2011, 17:30 »

Есть класс:
Код
C++ (Qt)
class MyClass
{
  ...
private:
   QMap<int,QString> _map;
};

Я хочу реализовать возможность использовать экземпляр моего класса в конструкции foreach для последовательного перебора элементов закрытого контейнера '_map'. Что для этого нужно сделать ?

Предполагаю, что мой класс в этом случае должен быть шаблонным и поддерживать работу с итераторами ?

Наследоваться от QMap я не хочу, чтобы сделать невозможными использование методов QMap для пользователей MyClass.
Записан
thechicho
Гость
« Ответ #1 : Октябрь 24, 2011, 19:53 »

может поможет http://doc.qt.nokia.com/latest/containers.html#the-foreach-keyword
Записан
shirushizo
Гость
« Ответ #2 : Октябрь 25, 2011, 09:40 »

...
Наследоваться от QMap я не хочу, чтобы сделать невозможными использование методов QMap для пользователей MyClass.
Так private наследуйся=)
Записан
Странник
Гость
« Ответ #3 : Октябрь 25, 2011, 10:34 »

Так private наследуйся=)
гениально! а ничего страшного, что foreach все равно не заведется, ибо все public методы QMap станут private? <= )
когда-то ковырялся, помню, что для работы foreach класс должен предоставлять интерфейс для работы с STL-style const_iterator. минимальный набор методов запамятовал.
« Последнее редактирование: Октябрь 25, 2011, 10:37 от Странник » Записан
Alf
Гость
« Ответ #4 : Октябрь 25, 2011, 13:36 »

Цитировать
Так private наследуйся=)
Да, это первое что я попробовал сделать =)

Видимо всё сводится к
Цитировать
класс должен предоставлять интерфейс для работы с STL-style const_iterator
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.152 секунд. Запросов: 21.