Форум программистов, компьютерный форум CyberForum.ru

Примеры с объявлением указателей на функции. Любопытно, часто ли такое используется? - C++

Восстановить пароль Регистрация
 
Excogit8er
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 66
03.12.2012, 16:34     Примеры с объявлением указателей на функции. Любопытно, часто ли такое используется? #1
Листал тут одну уже не новую книжку по С++ (Паппас & Мюррей) и там были такие вот примеры объявлений указателей на функции:
C++
1
2
3
4
int  * ( * ( * ifunct_ptr) (int) ) [5];
float  ( * ( * ffunct_ptr) (int, int)) (float);
double ( * ( * ( * dfunct_ptr) ( ) ) [5] ) ( );
( * ( * function_array_ptrs ( ) ) [5] ) ( );
Особенно 3 и 4 примеры впечатляют. Я слегка подофигел и решил поинтересоваться у многоуважаемых экспертов: а в реальных приложениях часто ли такое используется? Или это чистой воды "теория", а на практике с таким сталкиваться не приходится? (Ну или есть какие-нибудь "виртуальные функции" в библиотеке классов, с которыми дело имеет только компилятор, а самим такое "объявлять" не нужно?)

ЗЫ. Читается это так:

"Первая строка описывает указатель ifunct ptr на функцию, принимающую один целочисленный аргумент и возвращающую указатель на массив из пяти указателей типа int.

Вторая строка описывает указатель ffunct ptr на функцию, принимающую два целочисленных аргумента и возвращающую указатель на другую функцию с одним аргументом типа float и таким же типом результата.

Третья строка читается следующим образом: тип dfunct ptr определен как указатель на функцию без аргументов, возвращающую указатель на массив из пяти указателей, которые, в свою очередь, ссылаются на функции без аргументов, возвращающие значения типа double. В четвертой строке создается экземпляр такого указателя.

Последняя строка содержит объявление функции, а не переменной. Создаваемая функция function array ptrs() не имеет параметров и возвращает указатель на массив из пяти указателей, которые ссылаются на функции без аргументов, возвращающие значения типа int(последнее подразумевается по умолчанию, если не указано иное)."
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2012, 16:34     Примеры с объявлением указателей на функции. Любопытно, часто ли такое используется?
Посмотрите здесь:

Аналог функции, которая используется в Delphi strtoint/inttostr C++
C++ Передача указателей в функции
Вызов функции массива указателей C++
C++ Использование указателей на функции
C++ Что значит такое использование указателей
C++ Массив указателей на функции
Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей C++
Массив указателей на функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 20:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru