J'ai les deux classes suivantes :
class A
{
public:
A() : value(false) {}
bool get() const
{
return value;
}
protected:
bool value;
};
class B : public A
{
public:
void set()
{
value = true;
}
};
Maintenant je les utilise comme suit :
B* b = new B;
std::shared_ptr a(b);
auto func = std::bind(&B::set, *b);
std::cout << a->get() << std::endl;
func();
std::cout << a->get() << std::endl;
Je m'attends à ce que a->get()
retourne true
lors du 2ème appel, mais func()
n'a pas modifié sa valeur. Pourquoi ?