I'm simply adding two numeric arrays of size 3 and printing the result. So, if:
A = 4,6,1
B = 8,5,6
Then the result is 12,11,7. The problem for me is I am printing exponential numbers i.e. -1.28823e-231. Can anyone tell me why? I have tried to keep as little code in here as possible. First it's main() then the header then the source material. Many thanks.

```
NumericArray<double> doubArray5;    //test + operator
cout << "doubArray5" << endl;
doubArray5 = doubArray2 + doubArray3;
for (int i = 0; i < doubArray5.Size(); i++)
    cout << doubArray5[i] << endl;
cout << endl;

#ifndef NUMERICARRAY_H
#define NUMERICARRAY_H
#include "array.h"
#include <iostream>

namespace Cary
{
    namespace Containers
    {
        template<typename T>
        class NumericArray: public Array<T>
        {
        public:
            NumericArray<T>();    //default constructor
            NumericArray<T>(int i);    //constructor with one argument
            ~NumericArray<T>();    //destructor
            NumericArray<T>(const NumericArray<T>& source);    //copy constructor
            NumericArray<T>& operator = (const NumericArray<T>& arr1);    //assignment operator
            NumericArray<T> operator * (double factor) const;    //scale
            NumericArray<T>& operator + (const NumericArray<T>& arr2) const;    //add
            T dotProduct(const NumericArray<T>& na) const;    //dot product
        };
    }
}
#ifndef NUMERICARRAY_CPP
#include "NumericArray.cpp"
#endif
#endif

template<typename T>
NumericArray<T>& NumericArray<T>::operator + (const NumericArray<T>& arr) const    //add
{
    if (Array<T>::Size() != arr.Size()) throw OutOfBoundsException();
    NumericArray<T> tempArray = NumericArray(Array<T>::Size());
    for (int i = 0; i < Array<T>::Size(); i++)
        tempArray[i] = Array<T>::GetElement(i) + arr.GetElement(i);
    return tempArray;
}

```