C++ Advanced task04_05 - Lectures - Проблем с форийч-а
Здравейте,
защо при положение че имам в класа Lecture разлисани операторите .begin() и .end() не иска да работи кода на for-each-a от main() ?
(Класът ми има едно поле: сет от Resource)
std::set<Resource>::iterator begin(const Lecture& lect) {
return (this->dataSetResources).begin();
}
std::set<Resource>::iterator end(const Lecture& lect) {
return this->dataSetResources.end();
}
Поздрави!
Foreach-a работи с итератори и не го интересува към какви обекти сочат те. Типа на обектите не е задължително да съвпада с типа на класа, в който са дефинирани begin() и end() методите.
С други думи - няма значение в какъв обект (в случая е Lecture) се намира колекцията (vector<Resource>), която се итерира, важни са единствено итераторите, които този обект подава чрез begin() и end() методите си към foreach-a.