Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
3 / 3 / 1
Регистрация: 26.09.2015
Сообщений: 85

Компилятор не видит реализацию методов begin() и end()

25.03.2016, 17:52. Показов 2790. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При попытке вызова основанного на диапазоне выражения for (C++) вылезает ошибка С3312
error C3312: не найдена вызываемая функция "begin" для типа "Graph<Vertex> *"
error C3312: не найдена вызываемая функция "end" для типа "Graph<Vertex> *"

C++
1
2
3
4
5
6
7
void search(Graph <Vertex> *gr)
{
    //for (Iterator <Vertex> it = gr->begin(); it != gr->end(); it++) - так всё работает
    for (auto it : gr) // - а так нет
        cout << gr->vertex[it.step->getcurrent()].name<<" "; 
    gr->vertexclear();
}
Собственно, сами методы в класса Graph
C++
1
2
3
4
5
6
7
8
9
10
11
12
Iterator <Classofvertex> begin() _NOEXCEPT
{
    switch (type)
    {
    case 'b': return Iterator<Classofvertex>(new Iterator_breadth <Classofvertex>(this,start));
    case 'd': return Iterator<Classofvertex>(new Iterator_depth <Classofvertex>(this,start));
    }
}
Iterator <Classofvertex> end() _NOEXCEPT
{
    return Iterator<Classofvertex>(new Iterator_end <Classofvertex>(this));
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2016, 17:52
Ответы с готовыми решениями:

Дан массив строк. Напишите программу, проверяющую правильность вложения операторных скобок begin . end — каждому begin должен соответствовать end
Дан массив строк, представляющий собой фрагмент программы на языке Pascal. Напишите программу, проверяющую правильность вложения...

Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...

Теория BEGIN..END;
Снова здрасьте! Довольно часто я встречаю примеры кода, подобные этому var F: TextFile; S: string; begin if...

8
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,219
25.03.2016, 18:03
Цитата Сообщение от Polenoff Посмотреть сообщение
не найдена вызываемая функция "begin" для типа "Graph<Vertex> *"
А как он может их видеть? Как вам ясно сказал компилятор, gr - это Graph<Vertex> *, т.е. это указатель. Откуда у указателя могут взяться методы begin() и end()??? У указателя вообще никаких методов нет и быть не может.

Неужели, получив прямую подсказку от компилятора, так трудно сообразить?

C++
1
for (auto it : *gr)
0
3 / 3 / 1
Регистрация: 26.09.2015
Сообщений: 85
25.03.2016, 18:11  [ТС]
error C2100: недопустимое косвенное обращение
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.03.2016, 18:25
Цитата Сообщение от Polenoff Посмотреть сообщение
error C2100: недопустимое косвенное обращение
На какой строке?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,219
25.03.2016, 19:49
Цитата Сообщение от Polenoff Посмотреть сообщение
error C2100: недопустимое косвенное обращение
Что это? Откуда?
0
3 / 3 / 1
Регистрация: 26.09.2015
Сообщений: 85
25.03.2016, 21:10  [ТС]
Вот как раз в этой

C++
1
for (auto it : *gr)
Добавлено через 4 минуты
В search() нужно передать экземпляр gr, или указатель на него?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.03.2016, 21:36
Цитата Сообщение от Polenoff Посмотреть сообщение
Вот как раз в этой
Всю функцию, с исправлениями, покажи.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,219
25.03.2016, 22:06
Цитата Сообщение от Polenoff Посмотреть сообщение
В search() нужно передать экземпляр gr, или указатель на него?
Что значит "или указатель на него"? Вы нам показали здесь код, в котором четко видно, что в search передается именно указатель. Откуда вдруг возник вопрос о "передать экземпляр"?

Вы там что, у себя втихаря меняете код и затем постите сюда новые сообщения об ошибках, думая что мы как-то телепатически догадаемся, что вы там у себя в коде понаисправляли?
0
3 / 3 / 1
Регистрация: 26.09.2015
Сообщений: 85
25.03.2016, 22:37  [ТС]
Всё, ребят, проблема решена!
Спасибо всем!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.03.2016, 22:37
Помогаю со студенческими работами здесь

Ошибка в begin и end
Ошибка в begin и end.Что убрать? procedure TForm1.Button1Click(Sender: TObject); var x1,x2,x3,x4,y1,y2,y3,y4,z:double; k:byte; ...

Расставить begin end
procedure TForm3.sButton5Click(Sender: TObject); begin try if (Trim(sedit1.Text)='') // or (Trim(Edit2.Text)='') ...

Итераторы begin и end
Привет всем! Возникла проблема с итераторами. Пишу класс, который содержит вектор векторов. Пишу итератор к этому классу. Не получается...

Баланс BEGIN-END
Баланс BEGIN-END. Дан текстовый файл, содержащий программу на языке Паскаль. Проверить в нем баланс служебных слов BEGIN и END. Учесть,...

Количество Begin и End
Составить программу, которая читает текст, считает число ключевых слов ‘begin’ и число ключевых слов ‘end’, сравнивает их и выводит на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru