#include #include class Item; typedef std::function Action; class Item { public: Item(Action act, int y) : action_(act), y_(y){} void do_action(int x){action_(x, *this);} int y_; private: Action action_; }; int main() { Action a = [](int x, const Item& item) {std::cout << "Wert x: " << x << " Wert y: " << item.y_ << "\n";}; Item it1(a, 3); Item it2(a, 9000); it1.do_action(5); it2.do_action(55); }