2016-01-16 5 views
0

Я пытаюсь выполнить итерацию по списку, содержащему объекты типа «Окно» (пользовательский класс, который я написал). Цикл for должен использовать метод getTitle() класса Window для каждого элемента и распечатать заголовок в консоли.Итерация по списку пользовательского класса

По какой-то причине, когда я пытаюсь получить доступ к методу через итератор он говорит мне, что метод не существует ..

Это мой код:

void Center::printWindowList() 
{ 
    for (std::list<Window>::iterator it = windowList.begin(); it != windowList.end(); ++it) 
     std::cout << ' ' << *it.getTitle(); 
} 

Надежда кто-то может помочь

ответ

0

Это проблема приоритета оператора. Попробуйте сделать it->getTitle() или (*it).getTitle().

+0

Просто попробовал это, программа компилируется сейчас и запускается, но когда вы переходите через цикл for, я получаю сообщение об ошибке, вызывая высказывание «Ошибка отладки». Expression: list iterators incompatible ». Есть ли способ исправить это? – ColdZer0

+0

Это отдельный вопрос/вопрос. Вы показываете весь код, который имеет отношение к этому? Является ли тип 'windowList' действительно' list 'точно? –

+0

Да, тип точно соответствует списку , но есть тонна другого кода, который, вероятно, связан с ним, поскольку список принимает значения из функции EnumWindowsProc в Windows API. Вероятно, я должен открыть для него отдельный вопрос, спасибо за помощь! – ColdZer0

Смежные вопросы