別のオブジェクトに依存するオブジェクトのリストを追跡する必要があるライブラリを開発する必要があります。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 の refcount は 2 (および B と C を含むリスト) になります。
//Removing dependencies
B.dep_obj = NULL
オーバーロードを選択した場合に見られる課題の 1 つoperator=
は、オブジェクト B/C の参照を取得することです。これは、オブジェクトがoperator=
dep_obj オブジェクトを表すクラス (および B または C を表すクラスではない) の一部になるためです。したがって、 dep_obj を使用して A と B を表すオブジェクトを取得することはできません (一般的な方法で)