C ++: Sobrecarga del operador [] para acceso de lectura y escritura

En general, ¿cómo se declara el índice?[ ] ¿Operador de una clase para acceso de lectura y escritura?

Probé algo como

/**
 * Read index operator.
 */
T& operator[](T u);

/**
 * Write index operator
 */
const T& operator[](T u);

lo que me da el error

../src/Class.h:44:14: error: 'const T& Class::operator[](T)' cannot be overloaded
../src/Class.h:39:8: error: with 'T& Class::operator[](T)'

Respuestas a la pregunta(3)

Su respuesta a la pregunta