БлогNot. Ещё раз про указатель на функцию...

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

Ещё раз про указатель на функцию...

(мелькнуло в переписке)... В примере ниже оператором typedef определён синоним FUN для функции, возвращающей указатель типа void * и не имеющей параметров.

Это даёт разве что другой способ описать прототип функции:

#include <iostream.h>

typedef void * FUN (void);

int main() {
 FUN f1;
 cout << endl << f1();
 return 0;
}

void * f1 (void) { return NULL; }

Во втором случае описан именно указатель на функцию типа void, не имеющую параметров. Это позволяет, например, "присваивать этому указателю имя функции", а точней, переставлять его на адрес любой функции с прототипом void имя_функции (void). Благодаря этому можно, скажем, гибко и "на лету" изменять логику обработки какого-то события или назначать другую функцию-обработчик для пункта меню:

#include <iostream.h>

typedef void (* FUN) (void);

void f (void) { cout << "f "; return; }

int main() {
 FUN f1=f;
 f1();
 return 0;
}

С другими типами объектов вместо void дело обстоит абсолютно аналогично.


теги: программирование c++

Здесь можно оставить коментарий, обязательны к заполнению только красные поля. Не пишите лишнего, и всё будет хорошо :)

Ваше имя:
Пароль (если желаете зарегистрировать имя):
Любимый URL (если указываете, то вставьте полностью):
Текст сообщения (до 1024 символов):
 
Введите 2-й код из этих чисел:
48733, 96193, 26220, 32046
 

28.08.2014, 15:11; рейтинг: 6882

  свежие записипоиск по блогукомментироватьстатистика

Наверх Яндекс.Метрика
© PerS
вход