I have the following problem. `class A` implements some routines that should be used on a dataset that is being processed in Class B. That means I'm calling the function `start` from `class A`. What I'm doing should be saved in a variable `m` in `class A`. So far so good. However, when accessing class variable `m` it is still on the state when initialized.

To be precise:

```
#include <iostream>
#include <functional>

class A {
    public:
        int m;
        A() {
            m = 100;
        }
        void start(int value) {
            std::cout << "hello there!" << std::endl;
            m = value;
        }
};

class B {
    private:
        int m;
    public:
        void doSomething() {
            A a;
            doSomething2(std::bind(&A::start,a, std::placeholders::_1));

            // access variable m of instance a
            std::cout << a.m << std::endl;

        }
        template <typename Callable>
        void doSomething2(Callable f) {
            int val = 4444;
            f(val);
        }
};

main()
{
    B b;
    b.doSomething();
}

```

When executing this, I'll get `100` as an output for `m`. How will I be able to have the changes made by the call of `start` stored in the class variable? Meaning, storing the value `4444` as in this example? Thanks