2

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

如果有人可以看一下这段代码并告诉我我会应用它,如果您发现任何其他问题,请告诉我。我把这三个文件放到了codepad文件中,这样这个页面就不会变得麻烦了。

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

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

请不要将其变成“使用 boost,使用 std,使用 tr1”参数,我正在寻找有关此代码的帮助,而不是使用其他东西。

4

1 回答 1

1

我所看到的以及我从事的使用强引用和弱引用的概念的实现都使用了两个计数。有时一个计数是弱引用的数量,另一个是强引用的数量。其他时候,其中一个计数表示强引用 + 弱引用的总和。有时还有其他方案。但是我还没有看到像你的那样只有一个计数的实现。

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

于 2011-03-14T01:18:31.653 回答