Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2014, 11:43   #1
Студ
Пользователь
 
Регистрация: 20.03.2014
Сообщений: 35
По умолчанию Прошу помочь понять одну строку в программе

Есть класс А, в его подклассе встретил интересную запись:
Код:
А* (A::* insert[](А*)={&А::after, &A::before};
Что это значит?

Последний раз редактировалось Serge_Bliznykov; 11.04.2014 в 13:00.
Студ вне форума Ответить с цитированием
Старый 11.04.2014, 12:59   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

И скобки ещё не хватает.
Код:
A* A::after(A*) // функция-член класса A, принимающая A* и возвращающая A*
A* (A::* pAfter)(A*) // указатель на такую функцию
А* (A::* insert[])(А*) // массив таких указателей
Somebody вне форума Ответить с цитированием
Старый 11.04.2014, 13:35   #3
Студ
Пользователь
 
Регистрация: 20.03.2014
Сообщений: 35
По умолчанию

Да, скобки действительно не хватает.
А что означает указатель на функцию - когда указатель на переменную все понятно - это адрес ее хранения в памяти, а тут указатель на что указывает?

pAfter - "р" это опечатка или смысл какой-то несет?
Студ вне форума Ответить с цитированием
Старый 11.04.2014, 14:06   #4
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

В простейшем случае указатель на функцию ничем не отличается от указателя на что-то другое - это её адрес в памяти (адрес точки входа). С указателем на функцию-член посложнее. Тут, конечно, от реализации зависит, но в итоге всё равно будет или адрес функции, или смещение в vtable, по которому адрес функции.
p в pAfter - это pointer.
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помочь найти ошибку в программе shymaxer1 Общие вопросы C/C++ 0 27.03.2014 23:19
Алгоритмы. Не прошу решить. Прошу помочь! pascaluser Паскаль, Turbo Pascal, PascalABC.NET 2 12.10.2012 08:45
нужно помочь понять основные циклы в этой программе..что выполняется за чем? anton6262906 Помощь студентам 2 22.12.2011 14:27
Прошу помочь! DeusGPZ Общие вопросы C/C++ 4 17.10.2011 13:01