【问题标题】:Weak/Strong Reference Pointer Relationship弱/强引用指针关系
【发布时间】:2011-07-19 06:16:32
【问题描述】:

我一直在尝试编写自己的弱/强指针,但我并不清楚这种关系。我似乎遇到的所有事情都没有说清楚,而且经常一个文档会与另一个文档所说的相矛盾。谁能详细解释一下弱/强指针关系,也许还有图像或代码示例?

(请不要只告诉我“使用boost”或“使用tr1”等。这不是作业,我想学习)。

【问题讨论】:

  • 您可能有兴趣观看this video
  • 想学也没关系。但是在开始尝试使用鹞的发动机之前,应该能够了解汽车发动机的工作原理。基本原理可能相同,但有很多专业知识。如果您想了解专业版的工作原理,请先打开 boost 并尝试了解它们的实现。

标签: c++ pointers smart-pointers unsafe-pointers


【解决方案1】:

强指针拥有底层原始指针。它的存在可以使原始指针保持活动状态,因此它不能指向已被清理的东西。它的破坏会导致原始指针的删除。弱指针只知道原始指针,以及它是否仍然有效。它不会因为存在而使原始指针保持活动状态,也无法通过清理使原始指针消失。

要获得更详细的答案,您需要说明您发现的矛盾或您对定义的特定部分的疑问。

【讨论】:

  • 恕我直言,最好在这里添加weak_ptr和原始指针之间的区别-weak_ptr知道对象是否已被删除,并且尝试通过weak_ptr访问已删除的对象将产生defined 行为 - 异常
猜你喜欢
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多