User 11061201 Ответов: 1

Материал обратного вызова C++ с использованием статических методов, объявленных в заголовке


Привет сообществу, в настоящее время у меня есть этот код на C++. Я хочу передать ссылку на метод void, чтобы он мог быть вызван из другого метода в другом классе.

//main.cpp
#include "A"
void Handler(int val);
void Handler(int val) 
{
  printf("%d", val); //should display 5
}
int main()
{
   A fnc;
   fnc.execute(&Handler); //no matching function for call to (void (::*)(int))|
}
//A.h
public:
void execute(void **something(int val));

//A.cpp
void execute(void **something(int val))
{
   //call Handler()
   something(5);
}


Что я уже пробовал:

-------------------------------------------------------

Richard MacCutchan

Слишком много уровней косвенности.

1 Ответов

Рейтинг:
9

KarstenK

Использование этого метода в C++ называется обратными вызовами.

Здесь вы найдете учебник по обратным вызовам.

Как опытный программист, он больше любит интерфейсы, потому что проверка типов от компилятора, отладка adavantages и более чистые концепции, такие как модульность и техническое обслуживание. Здесь вы найдете некоторые учебник по интерфейсам.