Форум программистов, компьютерный форум CyberForum.ru

Перегрузка оператора индексации в одном классе и использование в другом - C++

Восстановить пароль Регистрация
 
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
14.07.2013, 16:02     Перегрузка оператора индексации в одном классе и использование в другом #1
Вообщем проблема состоит в том, что не понимаю как это сделать.
Есть класс Document в нем есть вектор vec состоящий из Item'ов. В классе Item есть map который содержит name и значение имени. Как перегрузить оператор [] чтобы при записи vec[0] ["name"] = "z" для нулевого Item'а, имени присваивалось значение "z" и как потом вывести на экран этот нулевой Item.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2013, 16:02     Перегрузка оператора индексации в одном классе и использование в другом
Посмотрите здесь:

Перегрузка оператора индексации [] C++
Перегрузка оператора индексации [] C++
Перегрузка оператора индексации и присваивания (C++) C++
Перегрузка оператора индексации C++
Перегрузка оператора индексации для связанного списка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
14.07.2013, 16:24     Перегрузка оператора индексации в одном классе и использование в другом #2
Цитата Сообщение от akaAxeL Посмотреть сообщение
Как перегрузить оператор [] чтобы при записи vec[0] ["name"] = "z" для нулевого Item'а, имени присваивалось значение "z"
Перегрузить в Item, примерно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Item {
 
   // ...
 
   std::string & operator [](std::string const& name) {
      return map[name];
   }
   std::string const& operator [](std::string const& name) const {
      return map[name];
   }
 
   // ...
};
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
14.07.2013, 16:31  [ТС]     Перегрузка оператора индексации в одном классе и использование в другом #3
огромное спасибо) не думал что все так просто, думал через итереаторы писать как то надо)
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
14.07.2013, 16:38     Перегрузка оператора индексации в одном классе и использование в другом #4
Поспешил, вторая перегрузка не правильная:
Цитата Сообщение от gray_fox Посмотреть сообщение
C++
1
2
3
std::string const& operator [](std::string const& name) const {
   return map[name];
}
Стоит её убрать.
Yandex
Объявления
14.07.2013, 16:38     Перегрузка оператора индексации в одном классе и использование в другом
Ответ Создать тему
Опции темы

Текущее время: 08:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru