Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Dimon_eprst
Зарегистрирован: 03.10.2006 Сообщения: 1
|
Добавлено: Вт Окт 03 2006 17:19 Заголовок сообщения: Function pointer (Visual C++) |
|
|
Что это такое? |
|
Вернуться к началу |
|
|
Lamer - 8
Зарегистрирован: 01.03.2003 Сообщения: 53
|
Добавлено: Вт Окт 03 2006 20:28 Заголовок сообщения: |
|
|
Просто указатель который указывает на функцию, основное применение для создания событий (в C# это называется делегатом, может и в C++ также). |
|
Вернуться к началу |
|
|
VasilyTMN
Зарегистрирован: 09.10.2006 Сообщения: 17
|
Добавлено: Пн Окт 09 2006 13:02 Заголовок сообщения: |
|
|
Короче указатели на функцию можно применять следующим образом
Код: |
// объявляем где-то тип функции
// функция принимает два целых и возвращает целое
typedef DWORD (Func *)(DWORD, DWORD);
// имеем 2 функции
DWORD FuncAdd(DWORD a1, DWORD a2) { return a1 + a2; } // сложение
DWORD FuncMul(DWORD a1, DWORD a2) { return a1*a2; } // умножение
// далее где-то в тексте объявляем переменную-указатель на функцию
Func lpfnFunc;
DWORD dwRes1, dwRes2;
lpfnFunc = FuncAdd;
dwRes1 = lpfnFunc(10, 20); // dwRes1 = 30
lpfnFunc = FuncMul;
dwRes2 = lpfnFunc(10, 20); // dwRes2 = 200
|
Это очень удобно! |
|
Вернуться к началу |
|
|
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Вт Окт 10 2006 11:45 Заголовок сообщения: |
|
|
Lamer - 8 писал(а): | Просто указатель который указывает на функцию, основное применение для создания событий (в C# это называется делегатом, может и в C++ также). |
делегатом обзывают нечто другое а не просто указатель. Попробуйте сложить указатель с указателем...а к делегату - запросто мона прибавить несколько штук...
Пример на мой взгляд - (с точки зрения языка си плас плас) - не удачный. В плюсах есть более элегантные способы с сохранением типизации...
(круглый) |
|
Вернуться к началу |
|
|
|