智能指针的缺陷
用过智能指针的都知道它的好处,不需要考虑所指向的内存为非法地址,也就是野指针。同时也不需要很在意内存释放的问题(除非你很在意显式的内存释放)。
但是智能指针同样有一个天生的缺陷:不能存在相互引用,也就是不能出现下面这种情况:
A引用了B,B也引用了A,这个情况会导致A和B永远都不能释放,因为所有其他引用A或者B的实例都取消引用以后,A和B的引用计数没有清零,A和B还互相引用着。
在这种情况下,目前我只能选择使用普通指针来避免问题。不知道有没有其他更好的办法?
每个人生下来都是天使,不过这个世界上也存在着恶魔。恶魔是天使变的,因为这个世界充满了诱惑。