template <typename T, unsigned int N> class Array { T * m_pArrayElements; // C array storing all Array elements public: ReturnType operator [] (unsigned int index); const ReturnType operator [] (unsigned int index) const; };