Creating custom class for vector of pairs

I have the following code:

Code:

`#include <iostream>`

#include <utility>

using namespace std;

template<typename T>

class Vector {

public:

Vector(unsigned int length = 10) {

}

};

template<typename P, typename Q>

class Pair {

};

template<typename P, typename Q>

class VectorOfPairs : public Vector<Pair<P, Q> > {

public:

VectorOfPairs(unsigned int length = 10) {

Vector<Pair<P, Q> >::Vector(length);

}

};

int main() {

VectorOfPairs<int, int> v;

return 0;

}

What I'm trying to do inside the "VectorOfPairs(unsigned int)" constructor is what we would write in Java as "super(length)". But for some reason, it gives me a compilation error:

Code:

`test.cpp: In constructor `VectorOfPairs<P, Q>::VectorOfPairs(unsigned int) [with P = int, Q = int]':`

test.cpp:26: instantiated from here

test.cpp:21: error: dependent-name ` Vector<Pair<P, Q> >::Vector' is parsed as a non-type, but instantiation yields a type

test.cpp:21: note: say `typename Vector<Pair<P, Q> >::Vector' if a type is meant

It seems to treat ` Vector<Pair<P, Q> >::Vector' as a type. But in reality, the type is ` Vector<Pair<P, Q> >', while the '::Vector' part is the constructor.

So my question is: is there anyway to tell the compiler that Vector<Pair<P,Q> > is the type?