我需要开发一个库,我需要跟踪依赖于另一个对象的对象列表。 Boost库提供了一些功能,如shared_ptr
和intrusive_ptr
,它们允许我们跟踪依赖项,但它们不会向我们提供指向依赖对象的所有其他对象列表的详细信息。
假设我们有
Object B is dependent on A
Object C is dependent on A
(Multiple objects dependent on A)
我需要一些像
这样的界面//Adding dependencies
B.dep_obj = A obj
C.dep_obj = A obj
在上述操作之后,A的引用数应为2(加上包含B和C的列表)。
//Removing dependencies
B.dep_obj = NULL
我看到一个挑战,如果我选择重载operator=
是为了获取对象B / C的引用,因为operator=
将是表示dep_obj对象的类的一部分(而不是表示B或C的类) 。因此,我将无法使用dep_obj(通用方式)