7

Boost::Intrusive ライブラリのベース フックとメンバー フックの違いは何ですか?

ブーストのドキュメントを読みましたが、それほど説明的ではありません。

4

3 に答える 3

3

私が知る限り、それはスタイルとオブジェクト指向設計の問題です。基本フックは継承階層に侵入し、追加のpublic親クラスを必要とし、設計上で複数の継承を強制する可能性があります。メンバー フックを使用すると、プログラマはオブジェクトをコンテナー メンバーシップとhas-aの関係ではなく、コンテナーとの関係を持つものとして扱うことができますis-a

于 2010-10-02T14:36:27.610 に答える
1

オブジェクトが単一のコンテナにのみ含まれることを意図している場合、ベースフックの方が便利なようです。それ以外の場合 (複数のコンテナーの場合)、複数のメンバー フックを使用すると、あいまいさの少ないソリューションが提供されます (多重継承が回避されるため)。

于 2010-09-29T12:49:22.500 に答える
1

http://www.boost.org/doc/libs/1_47_0/doc/html/intrusive/recursive.html 「メンバーフックは再帰構造には適していません」

于 2012-06-07T00:57:46.257 に答える