C ++: Sobrecarregando o operador [] para acesso de leitura e gravação

Em geral, como você declara o índice[ ] operador de uma classe para acesso de leitura e gravação?

Eu tentei algo como

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

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

o que me dá o erro

../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)'

questionAnswers(3)

yourAnswerToTheQuestion