当两个或多个
shared_ptr 相互引用时,会导致内存泄漏(因为引用计数永远不为0)。用
weak_ptr 打破这种循环引用是它最主要的用途。