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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.72
mifody
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 26
#1

Что такое CALLBACK функция...... - C++

14.06.2009, 20:35. Просмотров 3584. Ответов 4
Метки нет (Все метки)

Что такое CALLBACK функция......
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2009, 20:35     Что такое CALLBACK функция......
Посмотрите здесь:

C++ Callback функция
что за функция такая strstr? или это не функция? C++
C++ Код не работает,говорит,что не знает,что такое delay(100).в чём проблема?как сделать,чтоб программа заработала?
Что такое перегрузка оператора? Что у меня в коде за ошибка? C++
For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента C++
В этой части кода происходит объявление функций? Что такое void? Что в скобках? C++
C++ Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы C++
C++ Что такое хэндлер файла? Что такое файловый указатель?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? C++
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них C++
Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bazile
58 / 34 / 19
Регистрация: 15.03.2007
Сообщений: 6,911
15.06.2009, 14:19     Что такое CALLBACK функция...... #2
Дословно это 'функция обратного вызова'. Часто используется для извещения программы о наступлении какого-либо события, например, завершения асинхронной операции ввода/вывода. Еще одна область применения это совместная обработка данных 'внешней функцией' (функция WinAPI, run-time библиотеки C/C++) и функцией в твоей программе. Самый простой пример - сортировка массива с помощью функции qsort. qsort реализует общий алгоритм быстрой сортировки, а от программиста требуется предоставить функцию сравнения элементов массива.
KhasDenis
0 / 0 / 0
Регистрация: 15.07.2008
Сообщений: 173
25.06.2009, 21:54     Что такое CALLBACK функция...... #3
а чуть подробней ...
KhasDenis
0 / 0 / 0
Регистрация: 15.07.2008
Сообщений: 173
28.06.2009, 13:15     Что такое CALLBACK функция...... #4
Создаю я обьект, передаю его конструктору другого обьекта.
Теперь по определенным событиям во втором обьекте, он будет вызывать
функции/методы первого обьекта. Методы первого обьекта стали колбэк
функциями(так?), но на этапе проектирования первого класса/обьекта я может быть и не подозревал о необходимости подобного использования его методов, т.е. создавал их просто как методы.
Зачем получается нужен этот модификатор CALLBACK, и как быть в ситуации когда при создании метода я еще не знаю будет он колбек или не будет ?
В ява нет такого понятия как колбэк функции,а то что они позволяют делать можно выполнить обычными функциями. Помоему так.
krandv
0 / 0 / 0
Регистрация: 20.06.2009
Сообщений: 13
02.07.2009, 02:06     Что такое CALLBACK функция...... #5
Если ты разработал класс таким образом, что в случае CALLBACKа его методы нельзя использовать, то ты неправильно класс разработал.
Поясняю пример callback для функции qsort. Эта функция может сортировать любые данные - строки, дробные, целые, классы, структуры и т.д. Но сама эта функция не знает и не может знать как отсортировать например массив структур, созданных пользователем. Поэтому в качестве одного из параметров qsort передается указатель на функцию, которая будет выполнять сравнение 2х структур и говорить какая из них должна быть на первом месте, а какая на втором. Эту функцию должен написать программер, который знает что за структуры он сортирует и знает правила, по которым они должны сортироваться.
Таким образом это - callback функция. qsort ее вызывает (call), а она возвращает (back) результат.
Еще один пример callback - это использование MFC класса CListCtrl (список). Для него можно выставлять параметр, чтобы он не хранил значения элементов в себе а посылал месагу родительскому окну. В ответ на эту месагу родительское окно должно отдавать данные, которые будут выводиться на экран. В данном случае месага есть пример callback. Т.е окно посылает (call) месагу, а в ответ (back) приходят данные.
Если говорить в общем, то callback - это нарушение прямолинейного выполнения программы. Т.е. функции вызываются не из главного цикла и не в тот момент, когда этого хочет программа, а в тот момент, когда этого хочет функция (или другой процесс), с которой мы установили отношения. Система месаг винды в общем то ярчайший пример использования callback'ов.
Yandex
Объявления
02.07.2009, 02:06     Что такое CALLBACK функция......
Ответ Создать тему
Опции темы

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