Форум программистов, компьютерный форум, киберфорум
Наши страницы

Ошибка с итераторами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти значение функции http://www.cyberforum.ru/cpp-beginners/thread1631752.html
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Работу программы...
C++ Вычисление значения А в зависимости от поставленного условия Составить программу для вычисления значения rez в зависимости от поставленного условия. Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма.... http://www.cyberforum.ru/cpp-beginners/thread1631746.html
C++ Вычисление указанной величины
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
C++ Структура внутри класса
Есть такой вопрос, целесообразно ли делать вот так: class StudentGroup { private: struct Student { string name; string phone; string dateOfBirth; };
C++ Вычислить значение y в зависимости от выбранной функции f(x), аргумент которой определяется из поставленного у http://www.cyberforum.ru/cpp-beginners/thread1631734.html
Вычислить значение y в зависимости от выбранной функции f(x), аргумент которой определяется из поставленного условия. Возможные значения функции f(x): 2x, x2, х/3 задаются пользователем с...
C++ Реализация списка Подскажите пожалуйста, пробую реализовать двусвязный шаблонный список, или если попытаться создать список и воспользоваться методом класса возникают ошибки в стиле " undefined reference to... подробнее

Показать сообщение отдельно
Nosey
1349 / 400 / 107
Регистрация: 22.10.2014
Сообщений: 863
Завершенные тесты: 2
04.01.2016, 23:53
phantom256,
iter в цикле у вас является типом std::vector<TwoShape*>::iterator.
У него переопределён оператор -> который "делегирует" вызов соответствующему объекту типа "TwoShape*" - который является указателем.
Теперь читаем ошибку :
Код
request for member 'Area' in '* iter.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator-><TwoShape**, std::vector<TwoShape*> >()', which is of pointer type 'TwoShape*' (maybe you meant to use '->' ?)|
Код
Вызов члена "Area" в "блаблабла" который является указателем на 'TwoShape*'( может быть вы подразумевали использовать ->?)
А теперь "по-русски" : ваш iter "является" типом "указатель на указатель на TwoShape", вами использованный оператор -> "разыменовал" только один указатель. (обратите внимание на кавычки )
т.е. решение явно "разыменовать" "указатель" и вызвать ареа вот так :
C++
1
(*iter)->Area()
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru