C++ 弱/强引用指针关系

C++ 弱/强引用指针关系,c++,pointers,smart-pointers,unsafe-pointers,C++,Pointers,Smart Pointers,Unsafe Pointers,我一直试图写我自己的弱/强指针,但我不清楚两者之间的关系。我遇到的每件事似乎都不清楚,而且常常一个医生会对另一个医生说的话作出解释。有人能详细解释弱/强指针关系吗?可能还有一个图像或代码示例 (请不要只告诉我“使用boost”或“使用tr1”,等等。这不是家庭作业,我想学习)。强指针拥有底层原始指针。它的存在可以使原始指针保持活动状态,因此它无法指向已清理的对象。它的销毁会导致原始指针被删除。弱指针只知道原始指针,以及它是否仍然有效。它不能通过现有的方式使原始指针保持活动状态,也不能通过清理使原

我一直试图写我自己的弱/强指针,但我不清楚两者之间的关系。我遇到的每件事似乎都不清楚,而且常常一个医生会对另一个医生说的话作出解释。有人能详细解释弱/强指针关系吗?可能还有一个图像或代码示例


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

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


要获得更详细的答案,您需要显示您发现的矛盾或您对定义的特定部分提出的问题。

您可能有兴趣观看。想了解也可以。但在开始尝试使用鹞式飞机的发动机之前,人们应该能够理解汽车发动机是如何工作的。基本原理可能是相同的,但有大量的专业知识。如果您想了解专业版的工作原理,请先打开boost并尝试了解它们的实现。我想在这里添加弱指针和原始指针之间的区别-弱指针知道对象是否已被删除,尝试通过弱ptr访问删除的对象将产生定义的行为-异常