Improvement for Lesson 15: 'Power of Troy'

Thoughts on this are appreciated, not sure if this has been brought up prior:

I noticed that it was suggested in the lesson to use std::shared_ptr<T> for influenced_by in the human class.

This is not a great design habit, as this could create circular dependency (and memory leaks).

I attempted to use std::weak_ptr<T>, which was not acceptable.
I feel like if we are learning about shared and unique smart pointers here, weak pointers should also be included at the same time; to teach good habits.