title: c++对象生命周期的设计？
desc: 背景是这样的：<br>我创建对象后 A 这个对象会创建一个影子对象B。<br>任何时候 A被人持有情况下，不能释放B（就算没有人持有B）<br>任何时候 B被人持有情况下，不能释放A（就算没有人持有A）<br>当A B都没有人持有的时候，A B都能释放。<br><br>如果用c11 的shareptr 如何设计这样的结构？
topic: C++
content: 很简单嘛，其实就是这样做（相同的技巧在COM里面都被人用烂了）：class Aprotected A defaultpublic virtual A defaultclass Bprotected B defaultpublic virtual B default Fuck类整个放在cpp文件里面，这样就没人可以直接使用Fuckclass Fuck public A， public Bpublic 既然B可以由A创建，那么自然Fuck会有足够的信息来调用B的构造函数，所以是等价的。shar
answerer_tags: 专业造轮子，拉黑抢前排。gaclib.net