我遇到过这个图书馆orocos bfl。它使用外部矩阵库,在包装它们时,它们使用多重继承;比如
class Matrix: public Matrix_Wrapper, public Boost::Matrix
{
//some implementation
}
反对作文
是否有充分的理由(性能等),还是只是一段糟糕的代码?
答案 0 :(得分:0)
这里使用MI是有原因的。这样,Matrix
类可用于特定于orocos bfl的算法,但它仍可用于期望orocos bfl用于其实现的库的矩阵的算法。
orocos库可以使用不同的库为它提供基本的矩阵实现,因此orocos提供的算法不能绑定到一个特定的矩阵接口。
与此同时,orocos库的用户很可能需要额外的算法来操作他们与orocos库一起使用的矩阵。
通过使用多重继承,orocos库可以被视为几个底层矩阵库之一的扩展。