I have a template class called Array
        template <class T>
        class Array {
        private:
            T *m_data;
            int m_size;
            static int defaultsize;
        public:
            Array();
            Array(int size);
            Array(const Array<T> &obj);
            virtual ~Array();
            static int DefaultSize();
            static void DefaultSize(int count);
            Array<T> &operator=(const Array<T> &source);
            int Size() const;
            void setElement(int index, T p);
            T &getElement(int index) const;
            T &operator[](int index);
            const T &operator[](int index) const;
        };
My task is to generically inherit this into a derrived class
template <class T>
        class NumericArray: public Array<T>
        {
            public:
                NumericArray(); //default constructor
                NumericArray(int size); // overirrdden constructor
                ~NumericArray(); //destructor
                void operator*(double index); //scaling numeric array
                NumericArray<T> operator+(NumericArray<T> inputArray); //adding numeric array
                double &DotProduct(NumericArray<T> inputArray);
                NumericArray(const NumericArray<T> &obj);
        };
NumericArray.cpp
template <class T>
        double & NumericArray<T>::DotProduct(NumericArray<T> inputArray) {
            try {
                if(inputArray.Size()!= this->Size())
                {
                    throw OutofBoundsException(inputArray.Size());
                }
            }
            catch(ArrayException &error)
            {
                cout << error.GetMessage()<< endl;
            }
        }
        template <class T>
        void NumericArray<T>::operator*(double index) {}
        template <class T>
        NumericArray<T> NumericArray<T>::operator+(NumericArray<T> inputArray) {}
        template <class T>
        NumericArray<T>::~NumericArray() {}
        template <class T>
        NumericArray<T>::NumericArray() {}
        template <class T>
        NumericArray<T>::NumericArray(int size) {}
        template <class T>
        NumericArray<T>::NumericArray(const NumericArray<T> &obj) {}
I am struggling to create the constructor and access the m_data and m_size and default size variables for the NumericArray instance. I am sure I am missing some easy intermediate step. I am unable to access any of the base class data from Array or its functions. Would love to know what I am doing wrong here.
