If you have a grid of Actors that know about their own location on the grid, then that's redundant information; it means moving an Actor has to update two places. So you should probably not have Actors store their own location, only their age.

Also, shared_ptr is the wrong smart pointer here. You should use auto_ptr. auto_ptr is generally discouraged because it has weird copy semantics, but they happen to be what you want here. You could also use unique_ptr if you work around the copy semantics.