Перегрузка оператора индексации индексации C ++ [] таким образом, чтобы разрешить ответы на обновленияC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Перегрузка оператора индексации индексации C ++ [] таким образом, чтобы разрешить ответы на обновления

Сообщение Anonymous »

Рассмотрим задачу написания индексируемого класса, который автоматически синхронизирует его состояние с некоторым внешним хранилищем данных (например, файл). Чтобы сделать это, класс должен быть осведомлен об изменениях в индексированном значении, которые могут произойти. К сожалению, обычный подход к оператору перегрузки [] не допускает этого, например ... < /p>

Type& operator[](int index)
{
assert(index >=0 && index < size);
return state[index];
}
< /code>

i есть способ различить доступ к значению и измененное значение? < /p>

Type a = myIndexable[2]; //Access
myIndexable[3] = a; //Modification
< /code>

Оба этих случая происходят после возвращения функции. Есть ли какой -то другой подход к перегрузке оператора [], который, возможно, будет иметь больше смысла?

Подробнее здесь: https://stackoverflow.com/questions/358 ... lows-for-r
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»