Object declaring c++
<p><em><strong>Upon request I have post the rest of the <a href="http://ideone.com/JiVXt" rel="nofollow">code in idone.com</a></strong></em></p>

<p>So I have to create my own Vector Class and I did. It is required.
When I implement it in another class however, It gives me <a href="http://i.imgur.com/5qqKn.png" rel="nofollow">these errors</a>
This is how I am trying to implement it:</p>

<pre><code>#include "Vector.h"

class UserDB
{
private:
    Vector&lt;AccountInfo*&gt; _accounts;
//more code that previous to this implementation worked fine.
};
</code></pre>

<p>I was hoping someone could tell me what to do about it. I'm completely clueless in this one. Java never gave such errors, whatsoever...
EDIT: I have also realized that when I say something like <code>Vector&lt;int&gt; _accounts;</code> it runs completely fine, however when done with a class such as Vector, it seems almost impossible to fix it. I am reading a lot, but I still cannot seem to find a fix to this.</p>

<p>This is my Vector Header</p>

<pre><code>#include "ArrayClass.h" //Class with more methods
#include "AbstractVector.h" //Another class with more method
template &lt;class DT&gt;
class Vector: virtual public ArrayClass&lt;DT&gt;,
virtual public AbstractVector&lt;DT&gt;
{
protected:
int _currSize;
int _incFactor;
public:
Vector ();
Vector (int n);
Vector (int n, DT&amp; val);
Vector (const Vector&lt;DT&gt;&amp; v);
Vector (const ArrayClass&lt;DT&gt;&amp; ac);
virtual ~Vector();
void operator= (const Vector&lt;DT&gt;&amp; v);
void operator= (const ArrayClass&lt;DT&gt;&amp; ac);
virtual void insert (const DT&amp; item, int index);
virtual void remove (int index);
virtual void add (const DT&amp; item);
virtual int size() const;
virtual int capacity() const;
virtual int incFactor() const;
virtual void setIncFactor(int f);
void setCapacity(int c);
};
</code></pre>

<p>And this one is the Actual code Vector.cpp</p>

<pre><code>#include "Vector.h"

template &lt;class DT&gt;
Vector&lt;DT&gt;::Vector () : ArrayClass&lt;DT&gt;()
{
    _currSize = 0;
    _incFactor = 5;
}
Vector&lt;DT&gt;::~Vector ()
{
_currSize = NULL;
_incFactor = NULL;
}
template &lt;class DT&gt;
Vector&lt;DT&gt;::Vector (int n): ArrayClass&lt;DT&gt;(n)
{
    _currSize = 0;
    _incFactor = (n+1)/2;
}
template &lt;class DT&gt;
Vector&lt;DT&gt;::Vector (int n, DT&amp; val)
    : ArrayClass&lt;DT&gt;(n, val)
{
    _currSize = 0;
    _incFactor = n/2;
}
template &lt;class DT&gt;
Vector&lt;DT&gt;::Vector (const Vector&lt;DT&gt;&amp;v)
    : ArrayClass&lt;DT&gt; (v)
{
    _currSize = v._currSize;
    _incFactor = v.incFactor();
}
template &lt;class DT&gt;
Vector&lt;DT&gt;::Vector (const ArrayClass&lt;DT&gt;&amp; ac)
    : ArrayClass&lt;DT&gt; (ac)
{
    _currSize = ac.size();
    _incFactor = (_currSize+1)/2;
}
template &lt;class DT&gt;
void Vector&lt;DT&gt;::operator= (const Vector&lt;DT&gt;&amp; v)
{
    ArrayClass&lt;DT&gt;::copy (v);
    _currSize = v._currSize;
    _incFactor = v.incFactor();
}
//template &lt;class DT&gt;
//void Vector&lt;DT&gt;::operator= (const ArrayClass&lt;DT&gt;&amp;ac)
//{
//  ArrayClass&lt;DT&gt;::copy (ac);
//  _currSize = ac.size();
//  _incFactor = (_currSize+1)/2;
//}
template &lt;class DT&gt;
int Vector&lt;DT&gt;::size() const
{
    return _currSize;
}
template &lt;class DT&gt;
int Vector&lt;DT&gt;::capacity() const
{
    return _size;
}
template &lt;class DT&gt;
int Vector&lt;DT&gt;::incFactor() const
{
    return _incFactor;
}
template &lt;class DT&gt;
void Vector&lt;DT&gt;::add (const DT&amp; item)
{
    insert (item, _currSize);
}
template &lt;class DT&gt;
void Vector&lt;DT&gt;::setIncFactor(int f)
{
    if (f &gt;= 0) _incFactor = f;
}
template &lt;class DT&gt;
void Vector&lt;DT&gt;::setCapacity(int c)
{
    int len = _currSize;
    if (len &gt; c) len = c;
    DT* paNew = new DT[c];
    if (paNew == NULL)
    {
        throw ArrayMemoryException();
    }
    for (int i = 0; i &lt; len; i++)
    {
        paNew[i] = paObject[i];
    }
    if (paObject != NULL)
    {
        delete[] paObject;
    }
    paObject = paNew;
    _size = c;
    if (_currSize &gt; len)
    {
        _currSize = len;
    }
}
template &lt;class DT&gt;
void Vector&lt;DT&gt;::insert (const DT&amp; item, int index)
{
if ((index &lt; 0) || (index &gt; _currSize))
{
throw ArrayBoundsException();
}
if (_currSize+1 == _size)
{
setCapacity (_size + _incFactor);
}
_currSize++;
for (int i = _currSize-1; i &gt; index; i--)
{
(*this)[i] = (*this)[i-1];
}
(*this)[index] = item;
}
template &lt;class DT&gt;
void Vector&lt;DT&gt;::remove (int index)
{
if ((index &lt; 0) || (index &gt;= _currSize))
{
throw ArrayBoundsException();
}
if (_currSize &lt;= _size-_incFactor)
{
setCapacity (_size - _incFactor);
}
for (int i = index; i &lt; _currSize-1; i++)
{
(*this)[i] = (*this)[i+1];
}
_currSize--;
}
</code></pre>
