@Sinus_314

Как обратиться к функции класса через итератор?

В листе хранятся несколько экземпляров класса, я прохожусь по ним итератором, но не могу обратиться к функции хранимого элемента без введения tmp.

функция click() изменяет приватную переменную.

list <File> catalog;// опустил момент заполнения
list <File> :: iterator it;
for (it = catalog.begin(); it != catalog.end(); it++) {
	//*it.click(); //не работает
	File tmp = *it;
	tmp.click(); //бесполезно так, так как изменяется не оригинал, а копия
	}


и еще вопрос - есть ли возможность передать в функцию указатель на list, компилятор ругается: "выражение должно иметь тип класса
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
@menkar3
for (it = catalog.begin(); it != catalog.end(); ++it)
{
        it->click();
}

передать в функцию указатель на list

Вы полностью указали тип?
void foo(list<File>* pList);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы