私はこのライブラリ、orocosbflに出くわしました。外部マトリックスライブラリを使用し、それらをラップする際に、複数の継承を使用します。そのような
class Matrix: public Matrix_Wrapper, public Boost::Matrix
{
//some implementation
}
作曲に反対するように
正当な理由(パフォーマンスなど)がありますか、それとも単に悪いコードですか?
私はこのライブラリ、orocosbflに出くわしました。外部マトリックスライブラリを使用し、それらをラップする際に、複数の継承を使用します。そのような
class Matrix: public Matrix_Wrapper, public Boost::Matrix
{
//some implementation
}
作曲に反対するように
正当な理由(パフォーマンスなど)がありますか、それとも単に悪いコードですか?
ここでMIを使用する理由があります。このように、このMatrix
クラスはorocos bflに固有のアルゴリズムで使用できますが、orocosbflが実装に使用するライブラリの行列を期待するアルゴリズムでも使用できます。
orocosライブラリは、さまざまなライブラリを使用して基本的なマトリックス実装を提供できるため、orocosが提供するアルゴリズムを特定のマトリックスインターフェイスに関連付けることはできません。
同時に、orocosライブラリのユーザーは、orocosライブラリで使用する行列を操作するために追加のアルゴリズムが必要になる可能性があります。
多重継承を使用することにより、orocosライブラリはいくつかの基礎となるマトリックスライブラリの1つの拡張として扱うことができます。