I'm trying to overload the [] operator in a templated dynamic array, however it doesn't seem to be doing anything?
I created a templated dynamic array for school, I've tried separating the overload to outside the class.
The DynArray.h
template <typename T>
class DynArray
{
public:
    //The constructor initialises the size of 10 and m_Data to nullptr
    DynArray(void)
    {
        m_AllocatedSize = 10;
        m_Data = nullptr;
    }
    //deletes m_Data
    ~DynArray()
    {
        delete[] m_Data;
        m_Data = nullptr;
    }
    T* operator [] (int index)
    {
        return m_Data[index];
    }
    //creates the array and sets all values to 0
    T* CreateArray(void)
    {
        m_Data = new T[m_AllocatedSize];
        m_UsedElements = 0;
        for (int i = 0; i < m_AllocatedSize; ++i)
        {
            m_Data[i] = NULL;
        }
        return m_Data;
    }
private:
    bool Compare(T a, T b)
    {
        if (a > b)
            return true;
        return false;
    }
    T* m_Data;
    T* m_newData;
    int m_AllocatedSize;
    int m_UsedElements;
};
Main.cpp
#include <iostream>
#include "DynArray.h"
int main()
{
    DynArray<int>* myArray = new DynArray<int>;
    //runs the create function
    myArray->CreateArray();
    int test = myArray[2];
    delete myArray;
    return 0;
}
I expected the overload to return in this case the int at m_Data[2], however it doesn't seem to overload the [] at all instead says no suitable conversion from DynArray<int> to int.
 
    