Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614

Указатель на функцию в структуре

29.12.2016, 21:26. Показов 1627. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс:
C++
1
2
3
4
5
6
7
8
9
class Foo
{
    struct Request 
    {
        void ( Foo :: *operation )( Object* );
        Object* object;
    };
    std :: vector<Request> _request;
};
Хочу пробежаться по всему вектору и вызвать эту функцию. Делаю так:
C++
1
2
    for( const Request& request : _request ) 
            ( this -> *request.operation )( request.object );
У меня выдает ошибку на эту строку ( this -> *request.operation )( request.object );
Пишет вот что:
expected a member name

Что я делаю не так, подскажите пожалуйста
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.12.2016, 21:26
Ответы с готовыми решениями:

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив)
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая как параметр получает указатель на...

Указатель в структуре
Как можно работать дальше с Abool как с массивом, обращаясь к нему как к члену структуры, т. е. D.Abool? Когда программа доходит до этого...

Указатель на ф-цию в структуре
Привет всем, почему если объявить структуру в виде указателя и присвоить указателю на ф-цию функцию, то будет ошибка, а если объявить...

5
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
29.12.2016, 21:30
Звёздочка вроде не нужна (при вызове).
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
29.12.2016, 21:33
Лучший ответ Сообщение было отмечено Bretbas как решение

Решение

Bretbas,
->* - это один оператор. Пробел не допускается.
1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
29.12.2016, 21:46
Цитата Сообщение от likehood Посмотреть сообщение
Звёздочка вроде не нужна (при вызове).
Похоже всё же нужна Не заметил, что это указатель на член класса.
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
29.12.2016, 21:47  [ТС]
DrOffset, Спасибо, сработало.
А что это за оператор? Я первый раз такой вижу, честно
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
29.12.2016, 21:56
Цитата Сообщение от Bretbas Посмотреть сообщение
А что это за оператор? Я первый раз такой вижу, честно
Оператор доступа к члену по указателю на него.
Есть две формы: .* и ->*,
operator ->* можно перегрузить.

Отсылаю к главе 15, параграфу 5 книги "Язык программирования C++" Б. Страуструпа (3-е издание)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2016, 21:56
Помогаю со студенческими работами здесь

В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель
Друзья! Всем привет. Вот код: class otets { public: void f (void (otets::*p)()); private: void echo_f (){}; ...

Как создать указатель в структуре?
Я хочу ввести имя, но под name надо выделить память? Если да то как и где(где менно прописывать выделение памяти)? ...

Как описать в структуре строку не через указатель
Есть структура struct InfoBuf { size_t Len; char Data; / ??? static InfoBufType* Create(size_t Size, char* Val){ InfoBufType*...

Функция, получающая указатель на обычную функцию, получает указатель на метод класса
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая принимает указатель на функцию и...

Указатель на функцию, которая принимает в качестве параметра указатель на массив
я не понимаю. вроде делаю правильно, но выходит ошибка. есть функция. int foo(int *mas){}; cоздаю на нее указатель. int...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru