Перегрузка оператор []

Мне нужно перегрузить оператор [] в моём классе который бы вернул ссылку на 1 элемент вектора типа char. Чтобы я мог написать следующее:

    class myclass;
    myclass[0] = 'f';

Важно: Оператор должен вернуть именно ссылку, а не просто тип char.

Что я пытался сделать:

   char* operator[](size_t INDEX_)
   {
      if (INDEX_ + 1 > DATA.size())
      {
          throw MYSTR_OUT_RANGE;
      }
      return &DATA[INDEX_]; //Это возвращает ссылку на внутренний буфер вектора, а мне нужен элемент
   }

Ответы (1 шт):

Автор решения: Harry

Попробуйте так:

char& operator[](size_t INDEX_)
{
    if (INDEX_ + 1 > DATA.size())
    {
         throw MYSTR_OUT_RANGE;
    }
    return DATA[INDEX_];
}
→ Ссылка