This method:
shared_ptr<goo> getshared()
{
shared_ptr<goo> gooptr = make_shared<goo>(Goomem);
return gooptr;
}</goo></goo></goo>
reates a new instance of Goo each time it is called and the old instance get's garbage colected because the are no more references to it.
this is how I actually wrote the value inside Goo
(*pf).setgoo((*gp).get_y());
pretty spaghetti if you ask me...but it worked
thanks to all