1. shared_ptr是要程序管理的对象,这个对象管理了它引用的另一个对象
2. shared_ptr销毁的时候,把它引用的对象的引用数减一,这个是强引用
3. weak_ptr可以认为是普通指针,它不管理它引用的对象的内存
左边的小方块是智能指针对象,右边P对象拥有一个引用C的智能指针,C要能P销毁后才能销毁