#include <iostream>
#include <memory>
class Foo {
	public:
     void bar(){
     std::cout<<"Hello from Foo::bar \n";
        }
   } ;

int main(){
    Foo foo; 
    Foo* foo_ptr=&foo;
    std::shared_ptr<Foo> foo_sptr(&foo);
    void (Foo::*bar_ptr)()=&Foo::bar;
    (foo.*bar_ptr)();
    (foo_ptr->*bar_ptr)();
    (foo_sptr.get()->*bar_ptr)();
}