我在类SharedObject中有一个私有引用计数。 SharedObject是其他类的基类,例如Window。 Window是编辑器的基类。C++参考计数更改同时破坏对象
当ref计数达到0时,由于调用SharedObject :: Release(),SharedObject会自行删除。首先我们进入编辑器析构函数,它显示这个指针包含m_refs == 0,但是当我们到达Window析构函数时它突然变为1,并且当我们到达SharedObject析构函数时,它仍然是1.
我在SharedObject :: IncRef()方法上放置了一个断点,并且在发生这种情况时从未调用它。
什么?
你能提供更多的代码和更多的上下文?单从你的描述来看,几乎不可能回答这个问题。 – templatetypedef 2011-02-05 22:34:36
确保IncRef未内联,禁用断点。 – 2011-02-05 22:39:16
IncRef未内联,断点工作。但是当编辑器被破坏时,函数不会中断,所以我猜它没有被调用。 – Xilliah 2011-02-05 22:58:46