Перегрузка оператор []
Мне нужно перегрузить оператор [] в моём классе который бы вернул ссылку на 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_];
}