gsl_vector的构造函数

时间:2014-01-16 09:30:38

标签: c++ gsl

我想通过重载多个运算符来增强gsl函数(例如gls_vector)。我的想法是在一个单独的命名空间中创建一个新类:

namespace gsl
{
    class gsl_vector : public gsl_vector
    {

    };
}

现在我的问题是我需要一个构造函数。原始的gsl_vector没有这样的构造函数,因为它完全用C语言编写(根据http://www.boost.org/doc/libs/1_53_0/libs/numeric/odeint/doc/html/boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html#boost_numeric_odeint.odeint_in_detail.state_types__algebras_and_operations.construction_resizing)。那么,我怎样才能为这个操作编写一个合适的构造函数,或者我的想法是不可能的呢? 谢谢!

1 个答案:

答案 0 :(得分:0)

我认为从gsl_vector派生新类型不是一个好主意。它会增加更多问题然后它会有所帮助一点是gsl_vector是一个C结构。您无法轻松获取它的实例,因为通常需要调用gsl_vector_alloc。另一点是,您不能使用新的向量作为其他gsl函数的替代。它们纯粹是用C语言编写的,你不能传递派生类的指针。

然而,如果你真的需要构建这种向量,你需要查看gsl_vector_alloc和gsl_vector_free的代码来创建构造函数和析构函数。