自定义弱/强参考指针

时间:2011-03-14 00:30:13

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

我正在创建自己的弱/强引用指针关系的实现,我对配置感到困惑。当我有一个包含强引用的类,并且我想将强指针设置为另一个具有弱引用的类时,我是否应该传入weak_ref指针的指针?

如果有人可以请看一下这段代码并让我知道我会批评它,如果你发现任何其他问题,请告诉我。我把这三个文件放到了键盘文件中,所以这个页面不会变得很麻烦。

WeakReference.h:http://codepad.org/nNtRk4vO

StrongReference.h:http://codepad.org/MGi0fZ4J

请不要将其转换为“使用boost,使用std,使用tr1”参数,我正在寻找有关此代码的帮助,而不是使用其他内容。

1 个答案:

答案 0 :(得分:1)

我所看到的以及我所使用的实现,使用强引用和弱引用的概念,都使用两个计数。有时一个计数是弱引用的数量,另一个是强数的数量。其他时候,其中一个计数代表强+弱参考的总和。有时还有其他方案。但我还没有看到只有一个计数的实现,因为你的计数似乎已经有了。

如果你编写一个规范来确切知道strong_ref和weak_ref的行为应该是什么,也许会有所帮助。我发现编写规范的行为实际上可以帮助调试实现。它迫使你考虑输入,输出,极端情况,无效情况等。