Меня попросили в классе, который я беру, чтобы перегрузить [] и вернуть как постоянный, так и неконстантный символ:
char * data_;
char & operator [] (size_t index);
const char & operator [] (size_t index) const;
У меня одинаковая реализация для обоих, и он компилируется, но я почти уверен, что чего-то здесь не хватает:
const char & Array::operator [] (size_t index) const
{
return data_[index]; // todo: needs to be const?
}
Как я могу убедиться, что возвращаемый символ не может быть изменен?