Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функция, возвращающая указатель на функцию, проблемы с пониманием 
:(
    Опции темы
slater
Дата 25.5.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 20.11.2009

Репутация: нет
Всего: -4



помогите понять
вот цитирую из книжки: 

Код

Указатель на функцию может также быть типом возвращаемого значения. Объявление подобной функции требует определённого навыка. Начнём с той части объявления, которая содержит имя функции и список её формальных параметров. 

func(int, int)

Определим теперь тип указателя на функцию, который будет возвращаться функцией func(int, int)

char* (*)(int,int,int*,float)

Теперь остаётся правильно соединить обе части объявления
 
char* (*func(int, int))(int,int,int*,float);

Функция о двух целочисленных параметрах, возвращающая указатель на функцию, которая возвращает указатель на объект типа char и имеет собственный список формальных параметров вида: (int,int,int*,float)


не могу понять почему тут так char* (*func(int, int))(int,int,int*,float);
и как это интерпретировать

понимаю, что там есть комментарии, но все же неясно и непонятно почему получилась такая конструкция

кто поможет разобраться буду очень благодарен

PM MAIL   Вверх
maxim1000
Дата 25.5.2010, 19:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 1
Всего: 110



Цитата(slater @  25.5.2010,  18:09 Найти цитируемый пост)
char* (*func(int, int))(int,int,int*,float);

ох не хотел бы я, чтобы в коде, с которым я работаю, было такое
ИМХО, гораздо лучше так:
Код

typedef char* (TReturnedFunction*)(int,int,int*,float);
TReturnedFunction func(int,int);




--------------------
qqq
PM WWW   Вверх
jonie
Дата 25.5.2010, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



для понимания как это читать полезно "Правило право лево" (http://www.kalinin.ru/programming/cpp/17_07_00.shtml)
сам я его не помню, но знаю что оно есть 8))



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0392 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.