В C#:
myObj.SomethingHappened += new MyEventHandler(HandleSomethingHappened);
void HandleSomethingHappened(string foo) {
}
Как играть в подобном тоне на C++? Как создать некий EventHandler которому можно кормить метод и потом где небудь из него брать собственно етот метод? Хочу создать клас, обьекту которого можно было бы как-небудь указывать что он будет делать а не с чем он будет что-небудь делать.
Используйте класс-оболочку Function для хранения метода, а его экземпляр храните в EventHandler. По поводу реализации Function: не знаю, как заставить объект вызываться как функцию (наверное, переопределение операторов). Хранение как поле объекта решает проблему вытаскивания метода куда-то ещё.
Я так понимаю вам нужно что-то подобное, в данном примере классу присваевается указатель на лямбду и выполняется действие
// Example program
#include <iostream>
class Method
{
public:
Method(int (*fptr)(int, int))
{
this->bar = fptr;
}
void SetFunction(int (*fptr)(int, int))
{
this->bar = fptr;
}
//В данном случае GetFunction это имя функции
int (*GetFunction())(int, int)
{
return this->bar;
}
private:
//Сам наш указатель вообщем то
int (*bar)(int, int);
};
int main()
{
//Пример с со сложением
Method test
(
[](int x, int y)
{
return x+y;
}
);
std::cout << test.GetFunction()(10,10) << std::endl;
//Пример с умножением
test.SetFunction
(
[](int x, int y)
{
return x*y;
}
);
std::cout << test.GetFunction()(10,10) << std::endl;
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Не судите строго, ошибка в какой-то мелочи наверноеЕсть view
Вот мой код! Приложение запоминает имя и статус чтобы показать их оффлайн но как мне сохранить изображение чтобы показать их оффлайнЗаранее...
Я запускаю Jetty сервер и пытаюсь зарегистрировать сервлетВот в таком виде все работает:
Пытаюсь сделать приложение на полный экран (для всех активити)Создал абстрактный FullscreenActivity и наследую от него остальные активити