Originally Posted by
laserlight
Well, I'd say that it is good that you're learning how to write a generic dynamic array class template from scratch, but you might want to do some reading on how to write classes that do resource management and what std::vector provides and why.
For example, one obvious problem is that your Array does memory management, but you only implemented the default constructor and destructor: what happens should an Array get copied?
A legitimate concern might be: how do I modify an element within an Array? Both the operator[] and the get member functions return by value.
Another problem with your Array is that appending to it is slow: you only reallocate for one new element each time. The append also can unnecessarily result in two copies of the original object because you use a value parameter and then don't use move assignment within the append... although I'm not sure if copying/moving is going to work in the first place because normally we would use placement new as you only have memory allocated rather than a constructed object in the destination location.