Вы можете попробовать использовать лямбды.Создайте метод, подобный
std::function<void()> getService()
Где вы можете использовать внутри:
return [this](){
Service();
};
Также, если ваши методы должны использовать аргументы, вы можете использовать этот метод, но добавить аргументы в возвращаемое значение и лямбду.Еще один, вы можете создавать лямбду вне методов класса, например:
[&object]()
{
object.Service();
}
Таким образом, лучше использовать std :: shared_ptr, чтобы гарантировать, что объект существует, когда вызывается лямбда.