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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Указатель на функцию 
:(
    Опции темы
devmstr
Дата 21.3.2005, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


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

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



Мне необходимо создать новый тип - указатель на заданную функцию.
Что я делаю не так
typedef void(*Effect)(HWND hwnd,RECT &Rect,int speed) Ef;

Одна из функций
void PE_WipeLeft(HWND hwnd,RECT &Rect,int speed);
Помогите пожайлуста!


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
Jcs
Дата 21.3.2005, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

typedef void(*pfunc)(HWND,RECT&,int); // определяется тип указателя на функцию

pfunc pfunc_instance = &PE_WipeLeft;  // инициализируется адресом конкретной функции

PM   Вверх
versus
Дата 21.3.2005, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



у Стивена Прата есть очень простое и понятное объяснение объявления указателя на функцию:

Цитата
Итак, когда требуется объявить указатель на определенный тип функции, можно объявить функцию данного типа, а затем заменить имя функции выражение в форме (*pf), чтобы создать объявление указателя на функцию.


Таким образом какой бы сложной не была функция f, достаточно просто выписать ее объявление, поставить * перед названием функции и заключить имя функции вместе со звездочкой в скобки. Полученное имя можно использовать в конструкции typedef, как это описал Jcs, для удобной работы с типом указателя на функцию.

Это сообщение отредактировал(а) versus - 21.3.2005, 22:04
PM MAIL WWW   Вверх
devmstr
Дата 22.3.2005, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


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

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



Спасибо, большое!


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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