我一直在尝试编写自己的弱/强指针,但我并没有完全理解它们之间的关系。我找到的所有内容都没有让我明白,而且往往一个文档会与另一个文档相矛盾。有人能详细解释一下弱/强指针之间的关系吗?最好附带图片或代码示例。
(请不要告诉我“使用boost”或“使用tr1”等。这不是作业,我想学习。)
我一直在尝试编写自己的弱/强指针,但我并没有完全理解它们之间的关系。我找到的所有内容都没有让我明白,而且往往一个文档会与另一个文档相矛盾。有人能详细解释一下弱/强指针之间的关系吗?最好附带图片或代码示例。
(请不要告诉我“使用boost”或“使用tr1”等。这不是作业,我想学习。)
一个强指针拥有底层的原始指针。它的存在可以保持原始指针的有效性,因此它不能指向已被清除的对象。当强指针销毁时,会导致原始指针删除。一个弱指针只知道原始指针,以及它是否仍然有效。它的存在并不会使原始指针保持有效性,同时也无法通过被清除来消除原始指针。
要获得更详细的答案,您需要展示您找到的矛盾或者对定义中某个特定部分的问题。