std::shared_ptr is a C++11 addition. (It was in Technical Report 1, published in 2007. VC++ 2010 included it in <memory> since it was well known it would become part of the standard, but strictly speaking it should have been left in the tr1 namespace.)
If your compiler doesn't support C++11, you could try to use:
std::tr1::shared_ptr<Person&gr; p(new Person("Scott", 25));
Otherwise, you can get it from the Boost
libraries, which is where it was developed and tested before it's inclusion in C++11.