Прежде всего, я новичок в C ++, поэтому я не знаю, правильно ли я поступаю, или это может вызвать проблемы.
Итак, я пытаюсь передать универсальный c обратный вызов функции, а затем вызывать функции-члены из различных объектов внутри этого обратного вызова. В этом случае я создаю замыкание с помощью лямбда-функции для захвата объектов, а затем внутри лямбда-функции, которую я называю их функциями-членами.
Ну, например, код выглядит примерно так:
// ...
void functionWithCallback(std::function<void()> callback)
{
// Do some stuff ...
callback();
}
int main()
{
SomeClass some_object = SomeClass();
AnotherClass another_object = AnotherClass();
std::function<void()> callback = [&some_object, &another_object]() {
some_object.someFunction();
another_object.anotherFunction();
};
functionWithCallback(callback);
}
Мой вопрос: это правильный путь или это может вызвать некоторые проблемы или неожиданное поведение? Есть ли более элегантный способ сделать это?