I think it is not a good idea to deriv a new type from gsl_vector. It adds more problems then it helps. One point is that gsl_vector is a C-struct. You can not easily get an instance of it, because one usually needs to call gsl_vector_alloc. Another point is, that you can not use your new vector as an replacement for the other gsl functions. They are purely written in C and you can not pass pointers of derived classes.
Nevertheless, if you really need to build this kind of vector you need to look at the code of gsl_vector_alloc and gsl_vector_free to create the constructors and destructor.