Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
20 / 20 / 3
Регистрация: 01.04.2010
Сообщений: 57
1

Не понимаю CALLBACK

06.11.2011, 20:08. Показов 1166. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!

Помогите пожалуйста разобраться: хочу в коснтрукторе объекта передавать указатель на функцию этого объекта и потом вызывать этот callback.

вот примерно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
enum Errors { DivBy0, Negative };
 
 
class CalculatingError
{
 
public: 
    CalculatingError(Errors error);
    ~CalculatingError();
    void NegativeError();
    void DivBy0Error();
 
    void (*Error)(void);
}
 
CalculatingError::CalculatingError( Errors error)
{
    switch(error)
    {
    case Errors::DivBy0:
        {
            Error = (void*)DivBy0Error;
        }
        break;
    case Errors::Negative:
        {
            Error = (void*)NegativeError;
        }
        break;
    }
}
в чем ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2011, 20:08
Ответы с готовыми решениями:

For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента
Изучаю контейнеры и алгоритмы stl по Майерсу . С непривычки слегка охренел и запутался в них . В...

CallBack C++
Всем привет! Похожий вопрос. Нужно заюзать колбеки. Если работаю без класов т.е функция не...

CALLBACK
Здравствуйте, уважаемые форумчане. Передо мной стоит задача записи звука с микрофона в файл. Как...

CallBack
Можно ли в андроиде создать свои CallBack функции? Если можно, то киньте какой нибудь пример на...

4
2 / 2 / 0
Регистрация: 10.05.2012
Сообщений: 45
12.06.2012, 16:11 2
А какая хоть ошибка? Что компилятор выдает?
0
Эксперт С++
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
12.06.2012, 16:40 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
enum Errors { DivBy0, Negative };
 
 
class CalculatingError
{
 
public:
    CalculatingError(Errors error);
    ~CalculatingError();
    void NegativeError();
    void DivBy0Error();
 
    void (CalculatingError::*Error)(void);
};
 
CalculatingError::CalculatingError( Errors error)
{
    switch(error)
    {
    case DivBy0:
        {
            Error = &CalculatingError::DivBy0Error;
        }
        break;
    case Negative:
        {
            Error = &CalculatingError::NegativeError;
        }
        break;
    }
}
0
2 / 2 / 0
Регистрация: 10.05.2012
Сообщений: 45
12.06.2012, 18:58 4
Nick Alte, можете мне, как новчику, посоветовать какую-то хорошую статью по Callback-ам? Я разобрался с тем, как они происходят. А вот практическое применение? Можно какие-то легкие примеры для новичков?
На данный момент работаю "джуниором" и в одном из проектов нужно использовать Callback-функции. Это связано с сокетами, чтением/записью по ним. И вот как callback-функции применяются для отслеживания событий я еще не понял.
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
12.06.2012, 19:07 5
Поищите в сети и почитайте статьи по паттернам проектирования:
Комманда (Command)
Наблюдатель (Observer)
Можно вот в этой книжке: http://ru.wikipedia.org/wiki/Design_Patterns
Самый простой пример:
Когда пишут ГУИ приложение, часто на нажатие кнопки нужно как-то реагировать.
В ГУИ библиотеке есть класс кнопка, которая умеет рисовать себя, обрабатывать всякие системные вызовы и в том числе умеет узнавать, что ее нажали. Но что делать при этом нажатии такой класс не знает. А знает тот, кто эту кнопку создал. Вот для этого в эту кнопку добавляется специальный коллбек, команда или называйте как хотите. Так вот когда кнопка понимает, что ее нажали, она вызывает команду, которую в нее добавили. Ну и в результате выполняются всякие нужные действия. Т.е. кнопка отслежывает событие того, что ее нажали и вызывает в ответ на это зарегестрированный в ней коллбек.
В описанной схеме кнопка является наблюдателем за собитыем "нажатие". И когда нужное событие происходит, происходит вызов заданной комманды (это может быть как коллбек, так и другие реализации)
1
12.06.2012, 19:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2012, 19:07
Помогаю со студенческими работами здесь

Callback
как использовать модуль для обратной связи ?

Callback
Доброго времени суток! Хотел спросить может кто знает. Вообщем есть приложение которое сохраняет...

Callback функции
Есть запрос вроде этого: somevar.select(data, function(response) { // callback code. }); ...

CallBack функция
Шалом, пагни. Может кто объяснить, что в данном коде передается callback-ом... aa: function(a, b,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru