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.